디자인 모델 의 5 대 원칙

1. 단일 직책
디자인 류 든 인터페이스 든 방법 이 든 단일 직책 은 곳곳에서 나타난다. 단일 직책 의 정 의 는 우리 가 직책 을 시스템 변화의 원인 으로 정의 한다.클래스, 인터페이스, 방법 을 정의 할 때.정 의 를 내 린 후에 다시 생각해 보 자. 하나 이상 의 동기 로 이런 종류, 인터페이스, 방법 을 바 꿀 수 없다.답 이 긍정 적 이 라면 정 의 를 설명 하 는 클래스, 인터페이스, 방법 은 한 가지 직책 보다 많다.그러므로 단일 직책 에 어 긋 나 면 이런 상황 에 부 딪 히 면 여러 가지 직책 의 유형, 인터페이스 방법 이 나타 나 지 않 을 때 까지 직책 을 다시 세분 화해 야 한다 (직책 을 발견 하고 그 직책 을 서로 분리 해 야 한다).단일 직책 의 것 은 가장 간단 한 다섯 가지 원칙 중의 하나 이다.소프트웨어 디자인 과정 에서 곳곳에서 나타난다.없 는 곳 이 없다.
2. 개폐 원칙
개폐 원칙 은 클래스, 모듈, 방법 은 확장 할 수 있 으 나 수정 할 수 없다 는 것 을 말한다.열 리 면 확장 에 개방 하고 닫 으 면 수정 에 대해 닫 습 니 다.개폐 원칙 의 응용 은 개발 자 들 이 프로그램 에서 빈번하게 변화 하 는 부분 만 추상 적 으로 (포장 변화 점) 해 야 한 다 는 데 나타난다.변화 점 에 대한 패 키 징 은 변화 에 대한 수정 을 닫 는 것 입 니 다.변화의 불확실 성에 대해 서 는 수시로 확장 할 수 있다.상속 사용.추상 류 의 운용.
3. 교체 원칙 (Is - A)
교체 원칙 은 항상 하위 클래스 가 기본 클래스 를 교체 할 수 있 도록 보장 하 는 것 이다.
교체 원칙 의 실현.그룹 에 유사 한 속성, 방법, 변수의 클래스 가 있 습 니 다.우 리 는 공공 속성, 방법, 변 수 를 하나의 기본 클래스 (추상 클래스 또는 클래스) 로 추출 하여 이 클래스 를 계승 하고 가상 방법 을 다시 쓸 수 있다.현재 이 상속 류 와 기류 의 관 계 는 Is - A 에 부합된다.만약 기류 가 새 라면 상속 류 는 참새, 제비 가 될 수 있다.참새 Is - A 새, 제비 Is - A 새 라 고 할 수 있 습 니 다.
프로젝트 에서 하위 클래스 를 사용 하 는 모든 곳 은 부모 클래스 로 교체 할 수 있 지만 호출 방법 을 사용 할 때 대상 을 대상 으로 프로 그래 밍 하 는 다 형 성 을 나타 낸다.원칙 을 바 꾸 는 것 도 중요 한 원칙 이자 어 려 운 원칙 이다.
4. 후진 원칙 에 의존
a. 고 층 모듈 은 저층 모듈 에 의존 해 서 는 안 됩 니 다.둘 다 추상 b 에 의존 해 야 하고 추상 은 세부 사항 에 의존 해 서 는 안 된다.세부 사항 은 추상 에 의존 해 야 한다.
프로 세 스 를 대상 으로 하 는 개발 언어 에서 분석 과 디자인 은 항상 고 층 모듈 을 만들어 저층 모듈 을 호출 하고 전략 은 세부 적 인 소프트웨어 구조 에 의존한다.실제로 이런 방법의 목적 은 서브루틴 차원 구 조 를 정의 하 는 것 이다. 이 구 조 는 고 층 모듈 이 저층 모듈 을 어떻게 호출 하 는 지 설명 한다.그리고 대상 을 대상 으로 하 는 프로그램 을 잘 설계 하여 이런 의존 관 계 를 '거꾸로' 했다.고 층 모듈 은 더 이상 저층 모듈 에 의존 하지 않 기 때문에 저층 모듈 의 수정 은 고 층 모듈 에 영향 을 주지 않 고 고 층 모듈 도 쉽게 재 활용 되 며 고 층 모듈 과 저층 모듈 은 모두 추상 에 영향 을 미친다.이렇게 하 는 것 도 강 한 내부 집적 송 결합 프로 그래 밍 사상 에 매우 부합된다.그래서 이 원칙 도 프레임 디자인 의 핵심 원칙 이다.전통 적 인 프로 세 스 프로 그래 밍 을 사용 하여 만들어 진 의존 관계 구 조 를 사용 합 니 다. 전략 은 디 테 일 에 의존 합 니 다. 이것 은 나 쁜 것 입 니 다. 그러면 전략 이 디 테 일 한 변화 에 영향 을 받 기 때문에 대상 을 대상 으로 하 는 프로 그래 밍 은 의존 관계 구 조 를 거꾸로 설정 하고 전체 디 테 일과 전략 은 추상 에 의존 하 며 클 라 이언 트 프로그램 이 서비스 인 터 페 이 스 를 가 집 니 다.사실 이러한 의존 관계 의 역 치 는 바로 대상 을 대상 으로 디자인 한 표지 입 니 다. 어떤 언어 로 프로그램 을 작성 하 는 지 는 중요 하지 않 습 니 다.프로그램의 의존 관계 가 거꾸로 되 어 있다 면 대상 을 대상 으로 하 는 디자인 이다.프로그램의 의존 관계 가 거꾸로 되 어 있 지 않 으 면 프로 세 스 화 된 디자인 이다.후진 원칙 에 의존 하 는 것 은 대상 기술 을 대상 으로 하 는 많은 장점 을 실현 하 는 기본 적 인 저층 체제 이다.그것 의 정확 한 응용 은 재 활용 가능 한 프레임 워 크 를 만 드 는 데 필수 적 이다.또한 변화 앞에서 탄력 있 는 코드 를 구축 하 는 데 도 매우 중요 하 다. 추상 적 이 고 디 테 일이 서로 격 리 되 기 때문에 코드 도 쉽게 유지 된다.
5. 인터페이스 격 리 원칙
이 원칙 은 기 존의 뚱뚱 한 인터페이스 에 존재 하 는 단점 을 처리 하 는 것 이 라 고 해 야 한다.만약 클래스 의 인터페이스 가 내부 집합 이 아니라면, 이 클래스 는 '뚱뚱 한' 인 터 페 이 스 를 가지 고 있 음 을 나타 낸다.다시 말 하면 뚱뚱 한 인 터 페 이 스 는 여러 조로 분해 할 수 있다.모든 방법 은 서로 다른 클 라 이언 트 프로그램 에 서비스 된다.이렇게 하면 클 라 이언 트 프로그램 은 한 그룹의 구성원 함 수 를 사용 할 수 있 고 다른 클 라 이언 트 프로그램 은 다른 그룹의 구성원 함 수 를 사용 할 수 있다.
인터페이스 격 리 방법 은 두 가지 가 있다.
1, 사용 의뢰 (이 의뢰 비. net 의뢰 [delegate]) 분리 인터페이스
의뢰 를 사용 하면 분 리 된 다른 인터페이스 에서 의뢰 류 를 만 드 는 방법 입 니 다.
2. 다 중 계승 분리 인터페이스 사용,
이 방법 은 기 존의 '뚱뚱 한' 인 터 페 이 스 를 서로 다른 클 라 이언 트 프로그램 이 호출 할 수 있 는 두 개 또는 여러 개의 인터페이스 로 나 누고 여러 개의 인 터 페 이 스 를 실현 해 야 하 는 클 라 이언 트 프로그램 은 다 중 계승 으로 이 루어 질 것 이다.
이 두 가지 방법 은 인터페이스 격 리 를 실현 하 는 모든 방법 으로 그 중에서 두 번 째 방법 은 사용 이 비교적 보편적 이 고 간단 하 다.첫 번 째 방법 은 사용 하기에 상대 적 으로 복잡 하고 의뢰 를 사용 하 는 과정 에서 중복 되 는 대상 이 발생 할 수 있 으 며 운행 시간 과 메모리 비용 을 차지한다.어떤 때 는 두 번 째 방법 이 필수 이 고, 첫 번 째 방법 은 사용 할 수 없다.예 를 들 어 의뢰 대상 을 이용 한 전환 이 필요 하거나 다 를 때 서로 다른 전환 이 필요 하 다.
 

좋은 웹페이지 즐겨찾기