dip 예제

다음은 지금까지 설명한 전체 DIP 예제입니다. DIP 정의에 따라 상위 수준 모듈은 하위 수준 모듈에 의존해서는 안 됩니다. 둘 다 추상화에 따라 달라 집니다. 먼저 상위 수준 모듈(클래스)과 하위 수준 모듈을 결정합니다. 상위 수준 모듈은 다른 모듈에 의존하는 모듈입니다. 이 예제에서 CustomerBusinessLogic은 DataAccess 클래스에 따라 달라지므로 CustomerBusinessLogic은 상위 수준 모듈이고 DataAccess는 하위 수준 모듈입니다. 따라서 DIP의 첫 번째 규칙에 따라 CustomerBusinessLogic은 구체적인 DataAccess 클래스에 의존해서는 안되며 대신 두 클래스모두 추상화에 의존해야 합니다. 그러나 CustomerBusinessLogic 클래스에는 ICustomerDataAccess의 참조를 얻기 위한 팩토리 클래스가 포함되어 있기 때문에 완전히 느슨하게 결합된 클래스를 달성하지 못했습니다. 이것은 종속성 주입 패턴이 우리를 돕는 곳입니다. 다음 장에서는 위의 예제를 사용하여 DI(종속성 주입) 및 전략 패턴을 사용하는 방법을 알아봅니다. 따라서 상위 수준 모듈(CustomerBusinessLogic) 및 하위 수준 모듈(CustomerDataAccess)이 추상화(ICustomerDataAccess)에 종속되는 예제에서 DIP를 구현했습니다.

또한 추상화(ICustomerDataAccess)는 세부 정보(CustomerDataAccess)에 의존하지 않지만 세부 정보는 추상화에 따라 달라집니다. 템플릿 디자인 패턴은 DIP 원칙이 적용되는 예입니다. 이 예제에서는 모듈 간의 상호 작용을 추상화하면 하위 수준 모듈의 단순화된 인터페이스가 발생하며 더 간단한 구현으로 이어질 수 있습니다. 필요한 추상 인터페이스를 디자인한 후에는 원격 파일 서버 클라이언트에서 이러한 인터페이스를 구현해야 합니다. 또한 로컬 파일에 존재하는 일부 로컬 기능(예: 파일 업데이트)을 제한했기 때문에 각각 동일한 추상 인터페이스를 제공하는 로컬 또는 기타 기존 사용 원격 파일 액세스 모듈에 대한 어댑터를 작성해야 할 수 있습니다. 또한 컴퓨터에서 사용 가능하고 구성된 모든 파일 호환 시스템을 검색할 수 있도록 자신의 파일 액세스 열거기를 작성해야 합니다. 위의 예에서, 우리는 전구를 참조 하는 필드와 전기 파워 스위치 클래스를 썼다. 생성자에서 라이트벌비우 오브젝트를 만들어 필드에 할당했습니다. 그런 다음 전기 파워 스위치의 상태를 부울 값으로 반환하는 isOn() 메서드를 작성했습니다. press() 메서드에서는 상태에 따라 turnOn() 및 turnOff() 메서드를 호출합니다. 이 원칙에 대해 좋아하는 것은 코드 베이스 전체에서 원칙을 따랐다면 Mocks, Fakes, 테스트 복식 등을 사용하여 각 레이어를 격리하여 테스트 할 수 있다는 것입니다. 다음은 매우 간단한 예입니다.

우리 회사는 위젯을 구축하는 사업에 있습니다. 응용 프로그램을 디자인하는 일환으로 정보를 기록해야한다고 결정했으며 첫 번째 요구 사항은 위젯 목록과 트랜잭션으로 상호 작용할 수 있어야한다는 것입니다. 인터페이스 어셈블리를 만들고 다음 인터페이스를 추가합니다: 종속성 반전 원칙의 엄격한 응용 프로그램은 프레젠테이션 레이어에 프레젠테이션 논리가 포함되어 있는 경우와 같은 추상화를 정의하는 레이어에 넣을 수도 있습니다. 응용 프로그램 계층 추상화(추상 클래스 또는 인터페이스)와 응용 프로그램 어셈블리에는 응용 프로그램 논리 및 비즈니스 계층 추상화 등이 포함됩니다. 이 원리의 응용 프로그램에서 데이터 액세스 계층은 비즈니스 계층에 따라 달라지며 비즈니스 계층은 응용 프로그램 계층에 따라 다르고 응용 프로그램 계층은 프레젠테이션 계층에 따라 달라집니다. 종속성(참조)은 원칙의 이름을 반전시켰습니다. 이 자습서에서는 5개의 S.O.L.I.D(약어) 디자인 원칙 집합 중에서 `D`를 나타내는 종속성 반전 원칙의 개념을 설명합니다. 먼저 종속성 반전 원칙의 정의에 대해 자세히 살펴보고 원칙에 대한 심층적인 설명을 살펴보겠습니다.

  • Información

    • Últimas Entradas

      가우스 법칙 예제

      다음은 지금까지 설명한 전체 DIP 예제입니다. DIP 정의에…

      피벗 예제

      다음은 지금까지 설명한 전체 DIP 예제입니다. DIP 정의에…

      페르미 추정 예제

      다음은 지금까지 설명한 전체 DIP 예제입니다. DIP 정의에…