디자인 모델 편 - (1) - 대상 지향 7 대 디자인 원칙

5221 단어 디자인 모드
1. 디자인 취지
유지 보수 성과 재 활용 성
1.1. 유지 가능성 (Maintainability)
소프트웨어 의 유지 가능성 을 고려 하려 면 디자인 초기 부터 소프트웨어 를 고려 해 야 한다.
확장 성
융통성
삽입 성 등등;
1.2. 재 활용 성 (Reuseability)
재 활용 은 코드 의 재 활용 만 이 아니다.
코드 재 활용
알고리즘 의 복용
데이터 구조의 재 활용
이 두 가 지 를 실현 하려 면 디자인 할 때 반드시 일부 원칙 을 지 켜 야 한다. 우 리 는 대상 을 대상 으로 하 는 디자인 원칙 이 라 고 부른다.
2. 설계 원칙 SOLIDWORKS
디자인 원칙 일람: (주: 이 줄 임 말 은 나의 기억 약자)
S => SRP=
단일 책임 원칙 = 단일 직책 원칙
O => OCP=
Open Close Principle = 개폐 원칙
L => LSP=
Liscov 대체 원리 = 리 씨 교체 원칙
I => ISP =
인터페이스 분리 원리 = 인터페이스 격 리 원칙
D => DIP =
의존성 Inversion Principle = 역전 원칙 에 의존
C => CARP =
Composite / Aggregation 재사 용 원리 = 합성 / 중합 복용 원칙
D => Lod=
Demeter 의 법칙 = 디 미트 법칙
1. 단일 직책 원칙
Single Responsibility Principle
하나의 클래스 / 인 터 페 이 스 는 한 가지 일 에 전념 하고 클래스 / 인터페이스의 복잡 도 를 낮 춰 야 한다. 하나의 클래스 / 인 터 페 이 스 는 하나의 직책 만 맡 고 그 논 리 는 간단 하 다.
가 독성 이 높 고 유지 가능성 이 높다.변경 으로 인 한 위험 은 낮다.
하나의 기능 을 수정 할 때 다른 기능 에 대한 영향 을 현저히 낮 출 수 있다.
설명 해 야 할 것 은 단일 직책 원칙 은 대상 을 대상 으로 프로 그래 밍 사상 이 특유 한 것 이 아니 라 모듈 화 된 프로 그래 밍 이 라면 모두 단일 직책 원칙 을 적용 한 다 는 것 이다.
2. 개폐 원칙
Open Close Principle
소프트웨어 디자인 은 확장 개방, 수정 폐쇄 에 대응 해 야 한다.
OCP 어떻게 해요?추상 화가 관건 이다.
예 를 들 어 옥 제 는 안 미 원숭이 왕 에 게 조 서 를 내 렸 다.양산 사나이 가 조 서 를 받 았 다.전형 적 인 OCP 입 니 다.
궁정 은 일 병 일 졸 을 폐지 하지 않 고 원래 의 체계 제 도 를 파괴 하지 않 는 다 = > 수정 에 대해 폐쇄!
원래 의 제도 에 몇 개의 작은 직위 인 스 턴 스 를 추가 하면 개 조 를 완성 할 수 있 습 니 다 = > 확장 개방!
디자인 모델 사례: 전략 모델
규칙 에 대한 인용 은 하나의 전략의 인터페이스 에 의존 합 니 다. 전략의 실현 은 맞 춤 형 입 니 다. 새로운 규칙 을 추가 하려 면 새로운 전략 을 실현 하고 교체 하면 됩 니 다!
만나다: jdk 의 디자인 모드 - 전략 모드 - Rejected Execution Handler
3. 리 히터 교체 원칙
Liscov Substitution Principle
모든 기본 클래스 (부모 클래스) 가 나타 날 수 있 는 곳, 자 류 는 반드시 교체 할 수 있 습 니 다!
디자인 모델 사례:
  • 에이전트 모드
    프 록 시 모드: 프 록 시 클래스 와 피 프 록 시 클래스 가 같은 인 터 페 이 스 를 실현 합 니 다. 우리 가 사용 하 는 컨 텍스트 는 추상 적 인 인 인 터 페 이 스 를 사용 합 니 다. 그러면 프 록 시 클래스 는 원래 의 인터페이스 실현 류 를 교체 하여 이 를 대체 하여 작업 을 완성 할 수 있 습 니 다.
  • 전략 모드
    전략 모드: 전략 인 터 페 이 스 는 추상 적 인 인터페이스 이 고 전략의 실현 은 N 개의 서로 다른 전략 실현 류 입 니 다. 우리 가 응용 하 는 문맥 은 전략의 추상 적 인 인 인 터 페 이 스 를 사용 합 니 다. 그러면 모든 전략 실현 류 는 전략 인 터 페 이 스 를 교체 할 수 있 습 니 다.

  • 4. 인터페이스 격 리 원칙
    Interface Segregation Principle
  • 응용 문맥 (호출 자) 에 가능 한 한 작은 인 터 페 이 스 를 제공 합 니 다.큰 인터페이스 노출 방지;
  • 여러 개의 전문 인터페이스 > (우수) 기능 이 복잡 한 총 인터페이스
  • 인터페이스 격 리 원칙
    단일 직책 원칙 은 비슷 한 점 이 있 는데 모두 논 리 를 간소화 하고 불필요 한 기능 이 호출 자 에 게 너무 많이 노출 되 지 않도록 하 는 것 이다.
    첫째, 디자인 이 간단 하고 가 독성 이 강하 기 위해 서 이다.
    둘째, 제공 하 는 기능 이 너무 많아 서 후기의 변경 으로 인해 꼬리가 크 고 유지 보수 적 인 원 가 를 증가 하 며 확장 에 더욱 큰 부담 을 주기 위해 서 입 니 다!
    [ˌseɡrɪˈɡeɪʃ격 리헤어지다인종 격 리
    5. 후진 원칙 에 의존한다
    Dependency Inversion Principle
    응용 프로그램 은 인터페이스 프로 그래 밍 을 해 야 합 니 다. 프로 그래 밍 을 실현 하지 마 십시오.
    거꾸로 돌 았 어
    거꾸로 돌 리 는 것 은 우리 가 원래 한 대상 이 다른 대상 에 의존 하고 new 목표 류 에서 직접 하면 된다 는 것 을 말한다.
    그러나 지금 우 리 는 이 new 목표 류 를 목표 류 의 인터페이스 로 바 꾸 고 인 터 페 이 스 를 사용 하 는 방법 을 사용 해 야 한다.
    의존 하 는 구체 적 인 것 을 의존 인터페이스 (추상) 로 바 꿉 니 다!
    디자인 모델 사례:
  • 템 플 릿 방법 모드
    우리 응용 프로그램 에서 템 플 릿 류 를 사용 합 니 다. 템 플 릿 류 에 실현 되 지 않 은 방법 논 리 를 남 겨 두 고 프로그램 이 실제 실행 하 는 과정 에서 우리 가 호출 한 이 논 리 는 실제 적 으로 하층 의 추상 류 에서 실 현 됩 니 다.이렇게 해서 의존 하 는 관 계 는 역전 되 었 다.
  • 공장 방법 모델
    공장 방법 모델 도: 우 리 는 공장 의 추상 적 인 호출 에 의존 하고 호출 할 때 실제 적 으로 구체 적 인 공장 을 불 러 일 으 켜 자 류 를 실현 한다.

  • 6. 합성 / 중합 재 활용 원칙
    무엇이 합성 과 중합 입 니까?
    클래스 와 클래스 사이 에는 3 가지 관계 가 있 습 니 다. 일반화 관계 / 관련 관계 / 의존 관계:
    6.1 일반화 관계
  • 류 와 류 간 의 계승 관계
  • 인터페이스 와 인터페이스 간 의 계승 관계
  • 류 와 인터페이스 간 의 실현 관계
  • 6.2 관련 관계
    관련 관 계 는 하나의 유형 으로 다른 유형의 속성 과 방법 을 알 고 있다. 쉽게 말 하면...
    실례 변수의 인용;
  • 관련 관계
    하나의 클래스 는 다른 종류의 실례 변 수 를 인용 하여 자신의 속성 으로 한다.
  • 중합 관계
    강 한 연관 관계;하나의 종 류 는 전체 로 서 일부 개체 류 의 사례 와 관련 이 있다.
  • 합성 관계
    집합 보다 더 강 한 관련 관계: 한 종 류 는 전체 로 서 다른 종 류 를 관련 시 켰 고 관련 된 종 류 는 그 와 전체 와 부분의 관계 이 며 전체 생명 주 기 는 그 통제 안에 있다.

  • 구체 적 인 설명:
    관련: 자바 코드 에 나타 난 것 은 다음 과 같 습 니 다. 한 클래스 에서 다른 종류의 예제 (예제 참조) 를 참조 하 였 습 니 다. 예 를 들 어 spring 의 Service 클래스 에서 @ Autowire 의 개별 서 비 스 를 참조 하 였 습 니 다.
    중합: 중합 도 관련 이 있다.다만 이런 연관 성 을 강화 했다.중합 은 강 한 관련 이다. 전체 와 개체 의 그런 관련 은 전형 적 인 예 가 바로 자동차 와 타이어 / 자동차 와 엔진 이다.
    자동 차 는 전체 이 고 엔진 과 타이 어 는 모두 개체 이다.
    합성: 합성 도 일종 의 관련 이다.또한 더욱 강 한 관 계 를 가진다. 합성 도 강 한 관 계 를 가진다. 집적 보다 강하 고 합성 과 관련 된 관 계 는 전체 와 부분의 관계 이 며 전체적으로 부분의 생명 주 기 를 책임 진다.전형 적 인 예: 사람과 팔 / 허벅지 / 발;인사 전체, 팔 / 허벅지 / 발 은 모두 부분 이 고 그들의 생명 주 기 는 인체 와 더욱 강하 게 관련 되 어 있다.
    의존
    6.3 CARP 합성 중합 복용 원칙
    재 활용 성 을 높이 려 면 계승 류 를 통 해 이 루어 지 는 것 이 아니 라 합성 과 중합 의 관련 관계 에 착안 해 야 한 다 는 것 이다!
    여기에 jdk 중의 두 가지 반 례 가 있다. 그들 은 계승 을 통 해 복용 을 실현 하고 디자인 원칙 에 부합 되 지 않 는 다.
  • Stack 클래스:
    Stack extends Vector

  • Properties 클래스:
    Properties extends Hashtable 
        
      
     

    7. ( )

    , : ;

    : ; , public->private
  • 좋은 웹페이지 즐겨찾기