Demeter의 법칙 (LOD) : 코드를 느슨하게 결합시켜
Demeter (LOD)의 법칙은 코드의 커플 링을 줄이기위한 설계 지침입니다. 핵심 원칙은 간단합니다. "낯선 사람이 아닌 직계 친구들 과만 대화하십시오.".
본질적으로 클래스 또는 모듈은 객체가 의존하는 객체와의 상호 작용을 피하기 위해 의존하는 객체와 직접 상호 작용해야합니다. 이것은 더 단순하고, 더 테스트 가능하며, 상호 연결된 코드를 촉진합니다.
방지 방지 (피하기) :
이 예제는 단단한 커플 링을 보여줍니다. , 또는 클래스로 변경되는 클래스는이 코드를 중단 할 수 있습니다.
개선 된 접근법 :
메소드는 복잡성을 캡슐화하고 내부 구조를 숨기고 종속성을 줄입니다.
LOD의 혜택 : <code>// Tight coupling through nested calls
customerCity := order.GetCustomer().GetAddress().GetCity()
fmt.Printf("Customer lives in: %s\n", customerCity)</code> 로그인 후 복사
감소 된 커플 링 : Order
상호 의존성이 적은 코드를 유지하고 수정하기가 더 쉽습니다.
개선 된 가독성 : Customer
코드는 더욱 간단하고 이해하기 쉬워집니다. Address
정보 숨기기 :
내부 구현 세부 정보는 외부 구성 요소에서 보호됩니다.
쉬운 테스트 : 복잡한 모의 필요성을 줄임으로써 테스트를 단순화합니다.
실제로 LOD를 적용 :
<code>// Decoupled using a single method call
customerCity := order.GetCustomerCity()
fmt.Printf("Customer lives in: %s\n", customerCity)</code> 로그인 후 복사
데이터 흐름을 관리하기 위해 데이터 전송 객체 (DTO)를 사용하십시오
는 정면 패턴을 사용하여 복잡한 서브 시스템과의 상호 작용을 단순화합니다
refactor chained method 호출 단일, 더 높은 수준의 메소드로 호출
GetCustomerCity()
추가 탐사 :
소프트웨어 디자인 원칙에 대해 더 많이 배우고 싶으십니까? 이러한 관련 개념을 탐색하십시오 :
종속성 반전 원리 (DIP)
Golang 의존성 주입
인터페이스 분리 원리 (ISP)
당신은 그것을 필요로하지 않을 것입니다 (yagni) 원칙
간단하고 멍청한 (키스) 원칙 를 유지하십시오
자신을 반복하지 마십시오 (건조한) 원리
말하기, 원칙 에게 묻지 마십시오
미래 게시물에 대한 업데이트를 위해 LinkedIn, Github 및 Twitter/X에서 나와 연결하십시오. 위 내용은 몇 초 만에 설명되는 디미터 법칙(LoD)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!