2008-09-15 2 views
17

재사용/릴리스 동등성 원칙이란 무엇이며, 그 이유는 무엇입니까?재사용/릴리스 동등성 원칙 (REP)

+4

자기 학습자 배지를 원하는 것 같습니다 .-) – Mendelt

+1

글쎄, 좋을 것 같습니다. 그러나 내가 이것을하고있는 (그리고 OO 설계 원칙에 대한 다른 질문을하는) 주된 이유는 사이트에 정보를 제공하고 이러한 원칙에 대한 인식을 제고하는 데 도움이되는 것입니다. 나는 결코 그들에 대해 들어 본 적이없는 사람들을 만나는 수 많은 사람들에게 끊임없이 충격을 받는다. –

+0

알았어, 됐어. 나는 목록을 쓰러 뜨리려고 내 대답을 지웠다. (어쨌든 여기에 코멘트가 있어야합니다.) –

답변

24

재사용/릴리스 등가 원리 (REP)는 말한다 : 재사용

단위는 릴리스 단위입니다. 효과적인 재사용을 위해서는 변경 제어 시스템의 릴리스 추적이 필요합니다. 패키지는 재사용 및 릴리스의 효과적인 단위입니다.

재사용의 단위

는 하나 개의 클래스에서 복사하고 다른에 붙여 재사용해서는 안 릴리스

코드의 단위입니다. 원저자가 코드의 버그를 수정하거나 기능을 추가하면 자동으로 혜택을 얻지 못합니다. 변경된 내용을 찾아 사본을 변경해야합니다. 귀하의 코드와 원본 코드는 점차적으로 갈라집니다.

대신 코드에 출시 된 라이브러리를 포함시켜 코드를 재사용해야합니다. 원저자는 그것을 유지할 책임이있다. 소스 코드를 볼 필요가 없습니다.

효과적인 재사용 라이브러리의 저자는 숫자 나 어떤 종류의 이름과 버전을 식별 할 필요가있는 변경 관리 시스템

에서 릴리스의 추적을 필요로한다. 이를 통해 라이브러리 사용자는 다른 버전을 식별 할 수 있습니다. 이를 위해서는 일종의 릴리스 추적 시스템을 사용해야합니다.

패키지는 유효 재사용의 단위 및

그러나 일반적인 애플리케이션에서 많은 클래스가, 재사용의 단위로 클래스를 사용하고 해제 할 수 있습니다, 그것은 것 릴리스입니다 릴리즈 추적 시스템이 그들 모두를 추적해야하는 부담감. 더 큰 규모의 엔터티가 필요하며 패키지는 이러한 요구에 잘 부합합니다.

Granularity에 대한 Robert Martin의 기사도 참조하십시오.

+0

패키지별로, 의미하는 바는 * 자바 패키지 나 C# 네임 스페이스가 아니라 dll과 jar입니다. 그게 맞습니까? –

+0

Granularity에 대한 링크가 더 이상 작동하지 않습니다. 여기 있나요? https://pdfs.semanticscholar.org/53d0/8de266fb80355400d10f7ea77eea971d48f9.pdf? –