《디자인모드의 선》 독서노트-1.0-6대 디자인원칙

4767 단어

1.1 단일 책임 원칙


Single Responsibility Principle

권장 사항:


인터페이스는 반드시 단일한 직책을 수행해야 하며, 유형의 디자인은 가능한 한 한 한 한 가지 원인으로 변화를 일으키도록 해야 한다.

1.2리 대체 원칙


Liskov Substitution Pronciple

정의:


부류가 나타날 수 있는 곳만 있으면 부류가 나타날 수 있고 부류로 바뀌어도 아무런 오류나 이상이 생기지 않는다.

사양:

  • 자류는 부류를 완전히 실현해야 하는 방법
  • 자류는 자신의 개성을 가질 수 있다
  • 부모 클래스를 덮어쓰거나 실현하는 방법일 때 입력한 매개 변수를 확대할 수 있음
  • >         ,    。    
                 ,               (       ),         
    
  • 부류를 복제하거나 실현하는 방법일 때 출력 결과는 축소될 수 있음
  • >     ,         <=        
         ,                     ,               。          。
    

    권장 사항:


    이씨로 교체할 때 자류의'개성'을 최대한 피해야 한다. 일단 자류에'개성'이 있으면 이 자류와 부류 간의 관계는 조화되기 어렵다. 자류를 부류로 사용하고 자락의'개성'이 지워진다. 억울하다.하위 클래스를 단독으로 하나의 업무로 사용하면 코드의 결합 관계를 흐리멍덩하게 만들 수 있다. 클래스 교체 기준이 부족하다.

    1.3 역치원칙에 의존


    Dependence Inversioin Principle

    의미:

  • 고층 모듈은 저층 모듈에 의존해서는 안 되고 둘 다 추상에 의존해야 한다
  • 추상은 디테일에 의존해서는 안 된다
  • 세부 사항은 추상에 의존해야 한다
  • 추상: 인터페이스나 추상 클래스.세부 사항: 구현 클래스
           :
    1、          
    2、Setter        
    3、        
    

    권장 사항:


    역치원칙에 의존하는 본질은 추상(인터페이스 또는 추상류)을 통해 개 각종 또는 모듈의 실현이 서로 독립되고 서로 영향을 주지 않으며 모듈 간의 느슨한 결합을 실현하는 것이다.
  • 모든 종류는 가능한 한 인터페이스나 추상류, 또는 추상류와 인터페이스가 있다
    기본적인 요구는 인터페이스와 추상류는 모두 추상적인 것이기 때문에 추상이 있어야만 역치될 수 있다
  • 변수의 표면 유형은 가능한 인터페이스나 추상류이다
    Utils 도구 클래스와 자바 구현 클래스의 clone 방법을 주의하십시오
  • 어떤 종류도 구체적인 종류에서 파생해서는 안 된다
    클래스의 계승 층수는 가능한 한 적다
  • 기류를 복제하지 않는 방법
    만약 기류가 추상류이고 이 방법이 이미 실현되었다면 자류는 가능한 한 다시 복제하지 말아야 한다.클래스 간의 의존은 추상이다. 추상류의 구체적인 방법을 복제하면 의존의 안정성에 어느 정도 영향을 줄 수 있다.
  • 리씨 교체 원칙과 결합하여 사용
    규칙: 인터페이스는 공공 구조의 실현을 책임지고 클래스의 정확한 업무 논리 실현을 실현하며 적당한 시기에 부류를 세분화한다.

  • 1.4 인터페이스 격리 원칙


    Interface Segregation Principle

    Java 인터페이스 종류:

  • 인스턴스 인터페이스(Object Interface): Person zhangSan = new Person();Person 클래스는 ZhangSan의 인터페이스
  • 입니다.
  • 클래스 인터페이스(Class Interface): 인터페이스로 정의된 인터페이스
  • 정의:

  • 1종: 클라이언트가 필요하지 않은 인터페이스에 의존해서는 안 된다
  • 두 번째: 클래스 간의 의존 관계는 최소한의 인터페이스에 세워야 한다
  • 요약:


    인터페이스는 가능한 한 세분화하고 인터페이스 중의 방법은 가능한 한 줄여야 한다.단일 직책과 차이점: 심사 각도와 달리 단일 직책은 유형과 인터페이스 직책이 단일하고 중시하는 직책을 요구한다. 이것은 업무 논리적인 구분이다.인터페이스 격리는 인터페이스 방법을 최대한 적게 요구한다.직책이 같고 방문 모듈이 다르다. 가능한 한 여러 개의 전문적인 인터페이스를 사용하고 각 모듈은 서로 다른 인터페이스에 대응한다.

    권장 사항:

  • 하나의 인터페이스는 하위 모듈이나 업무 논리에만 서비스된다
  • 업무 논리 압축 인터페이스 중의public 방법을 통해 인터페이스를 자주 돌아보고 인터페이스를'통통한 근육'이 아니라'통통한 근육'에 이르게 하는 방법
  • 이미 오염된 인터페이스는 가능한 한 수정하고 변경 위험이 비교적 크면 어댑터 모델로 전환 처리한다.
  • 환경을 이해하고 맹종을 거부한다.

  • 경험과 상식에 따라 인터페이스의 입도 크기를 결정하고 인터페이스의 입도가 너무 작아 인터페이스 데이터가 급증하여 개발자가 인터페이스의 바다에서 사레가 들렸다.인터페이스의 입도가 너무 크고 유연성이 낮아 맞춤형 서비스를 제공할 수 없어 전체 프로젝트에 예측할 수 없는 위험을 가져온다.

    1.5. 디미트의 법칙


    Law of Demeter, 최소 지식 원칙(Least Knowedge Principle)이라고도 함

    정의:


    한 대상은 다른 대상에 대해 최소한의 이해를 가져야 한다.통속적으로 말하면, 하나의 클래스는 자신이 결합하거나 호출해야 하는 클래스에 대해 가장 적게 알아야 한다

    네 가지 의미:

  • 친구와만 교류
  • 친구 사이에도 거리가 있다
  • 자기 거면 자기 거.
    이런 방법이 있다. 이 종류에 넣으면 되고, 다른 종류에 넣으면 틀림없다. 그러면 어떻게 평가합니까?만약에 한 방법을 본류에 넣으면 클래스 간의 관계를 증가하지 않을 뿐만 아니라 본류에 부정적인 영향을 미치지 않는다면 본류에 놓아라.
  • Serializable 주의
    VO:value object

  • 권장 사항:
  • 디미트 법칙의 핵심 관념은 바로 클래스 간의 결합, 약한 결합이다. 약한 결합을 해야만 클래스의 복용률을 높일 수 있다.그 요구의 결과는 대량의 중전이나 점프 유형이 생겨서 시스템의 복잡성을 높였다.
  • 실제 응용에서 한 클래스가 두 번 이상 높아야 다른 클래스에 접근할 수 있다면 재구성해야 한다.하나의 시스템의 성공은 하나의 기준이나 원칙만으로 결정될 수 있는 것이 아니라 매우 많은 요소가 있기 때문이다.점프 횟수가 많을수록 시스템이 복잡해지고 유지 보수가 어려워지기 때문에 점프가 두 번을 넘지 않으면 참을 수 있다
  • 디미트 법칙은 클래스 간의 결합을 요구하지만 결합은 한계가 있다.

  • 1.6 개폐 원칙


    Open Closed Principle

    정의:


    하나의 소프트웨어 실체, 예를 들어 클래스, 모듈과 함수는 확장 개발, 수정에 대해 닫아야 한다.

    사용 방법:


    ** 1. 추상적 구속**추상은 한 조의 사물에 대한 통용적인 묘사로 구체적인 실현이 없으면 매우 많은 가능성을 가지고 수요의 변화에 따라 변화할 수 있음을 나타낸다.따라서 인터페이스나 추상류를 통해 변화할 수 있는 행위를 제약할 수 있고 확장에 대한 개방을 실현할 수 있다.다음과 같은 세 가지 의미가 있습니다.
    1.1. 인터페이스나 추상 클래스의 제약을 통해 확장에 대해 경계를 한정하고 인터페이스나 추상 클래스에 존재하지 않는public 방법을 허용하지 않는다.1.2.파라미터 유형, 인용 대상은 실현 클래스가 아닌 인터페이스나 추상 클래스를 최대한 사용한다.1.3.추상층은 가능한 한 안정을 유지하고 일단 확정되면 수정을 허용하지 않는다.
    ** 2. 메타데이터 제어 모듈 비헤이비어**
    메타데이터: 환경과 데이터를 설명하는 데 쓰이는 데이터로 통속적으로 말하면 설정 매개 변수이다.매개 변수는 파일에서 얻을 수도 있고 데이터베이스에서 얻을 수도 있다
    ** 3. 프로젝트 규약 지정**
    구성보다 우수한 규약
    ** 4. 패키지 변경 사항 **
  • a, 같은 변화를 인터페이스나 추상 클래스에 봉함
  • b. 서로 다른 변화를 서로 다른 인터페이스나 추상류에 봉하여 두 가지 다른 변화가 같은 인터페이스나 추상류에 나타나서는 안 된다.
  • 봉인 변화: 즉 보호받는 변화(protected variations)이다. 변화가 예상되거나 불안정한 점을 찾아내고 우리는 이러한 변화점을 위해 안정적인 인터페이스를 만든다. 정확히 말하면 봉인이 발생할 수 있는 변화이고 변화가 예측되면 봉인을 할 수 있다.
  • 좋은 웹페이지 즐겨찾기