문제

나는 결합과 응집의 개념을 간결한 정의로 요약하려고 노력하고 있습니다.누군가 나에게 짧고 이해하기 쉬운 설명을 줄 수 있습니까(Wikipedia의 정의보다 짧음) 여기 그리고 여기)?그들은 어떻게 상호 작용합니까?

감사해요.

누구에게 좋은 짧은 예가 있습니까?

도움이 되었습니까?

해결책

커플 링

  • 헐렁한:당신과 편의점에 있는 그 남자.당신은 각자의 목표를 달성하기 위해 잘 정의된 프로토콜을 통해 의사소통합니다. 당신이 돈을 지불하면 그는 당신이 치토스 가방을 가지고 나갈 수 있게 해줍니다.시스템을 중단하지 않고도 둘 중 한 명을 교체할 수 있습니다.

  • 단단한:당신과 당신의 아내.

응집력

  • 낮은:편의점.주유부터 우유, ATM 뱅킹까지 모든 서비스를 받으려면 그곳으로 가세요.제품과 서비스는 공통점이 거의 없으며, 한 곳에 모아두는 편리함만으로는 그에 따른 비용 증가와 품질 저하를 상쇄하기에는 충분하지 않을 수 있습니다.

  • 높은:치즈 가게.치즈를 파는군요.다른 것은 없습니다.그래도 치즈에 관해서는 그들을 이길 수 없습니다.

다른 팁

결합 - 모듈(패키지, 클래스, 메서드)이 다른 모듈에 얼마나 의존하는지 측정합니다.결합을 줄이거나 특정 모듈이 시스템의 다른 모듈에 의존하는 양을 줄이는 것이 바람직합니다.

응집력 - 모듈의 멤버(클래스, 메소드, 메소드 내의 기능)가 동일한 모듈의 다른 멤버와 얼마나 밀접하게 관련되어 있는지를 측정합니다.응집력을 높이는 것은 모듈이 매우 구체적인 작업을 가지고 있고 해당 작업만 수행한다는 것을 의미하므로 응집력을 높이는 것이 바람직합니다.

OO(이러한 것 포함)와 관련된 소프트웨어 설계 개념에 대한 가장 포괄적인 토론 중 하나는 Bertrand Meyer의 것입니다. 객체지향 소프트웨어 구축.

'커플링'과 관련하여 그는 약한 결합/소형 인터페이스 규칙을 다음과 같이 제시합니다.

두 모듈이 통신하는 경우 가능한 한 적은 정보를 교환해야 합니다.

응집력과 관련된 메이어의 자료는 단 하나의 간결한 진술로 요약되지는 않지만 내 생각에 스티브 맥코넬의 이 문장은 코드 완성 꽤 잘 요약하면 다음과 같습니다.

응집력은 클래스의 모든 루틴 또는 루틴의 모든 코드가 중앙 목적을 얼마나 밀접하게 지원하는지 나타냅니다.

결합은 다른 사람에 대한 의존성을 의미합니다.
응집력은 그 자체로 완전함을 의미합니다.

결합을 측정하는 빠르고 더러운 방법은 import (또는 유사한) 진술.

"커플 링은 모듈 간의 상호 의존성의 척도이며, 최소화되어야합니다." "최대화 될 품질 인 응집력은 각 모듈에서 수행하는 활동 간의 관계에 중점을 둡니다."

이 문서에서 인용: http://steve.vinoski.net/pdf/IEEE-Old_Measures_for_New_Services.pdf

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top