GoF 디자인 모델 - 개요
GoF 의 23 가지 디자인 모델
GoF 는 Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides 네 명 을 말 하 는데, 이들 네 명 은 Gang of Four, 줄 임 말 GoF 로 불 린 다.이 네 사람 은 일찍이 《 Design Patterns: Elements of Reusable Object - Oriented Software 》, 즉 유명한 《 디자인 모델 》 이라는 책 을 함께 저술 한 적 이 있다.이 책 은 프로그래머 계 의 성경 중 하나 로 널리 알려 져 있다.이 책 에서 23 가지 디자인 모델 을 소개 했다. 비록 디자인 모델 은 이 23 가지 에 그 치지 않 지만 이 23 가지 가 너무 자주 사용 되 기 때문에 우 리 는 디자인 모델 이 라 고 말한다. 즉, GoF 의 23 가지 디자인 모델 을 말한다.본 고 에서 후속 적 으로 말 한 디자인 모델 도 기본 디자인 모델 을 GoF 의 23 가지 디자인 모델 로 한다.또한, 나의 첫 번 째 언어 는 자바 이 고 자바 도 거의 OO 계 의 기본 언어 이기 때문에 후속 글 은 자바 를 사용 할 것 이다.글 에 나타 난 예제 코드 는 자바 - design - pattern - samples 프로젝트 에 동기 화 됩 니 다.
6 대 원칙
모든 디자인 모델 은 다음 과 같은 여섯 가지 기본 적 인 디자인 원칙 을 따른다.
L
를 하나 로 합치 면 더 보기 좋 겠 지!이 유 를 아 는 친구 가 있 으 면 블 로그 에 글 을 남 겨 주세요!단일 직책 원칙
한 가지 일 만 하고 이런 주요 직책 과 무관 한 일 을 하지 마라.
개방 폐쇄 원칙
확장 개방, 수정 종료.쉽게 말 하면 클래스 나 인터페이스 가 정 의 된 후에 파괴 적 인 업 데 이 트 를 할 수 없습니다!bug 가 없 거나 클래스, 인 터 페 이 스 를 수정 하 는 것 이 내부 실현 체 제 를 개선 하기 위해 서가 아니라면 이런 종 류 를 수정 해 서 는 안 됩 니 다.개폐 원칙 의 목적 은 클래스 나 인터페이스 후속 버 전이 뒤로 호 환 될 수 있 도록 유지 하 는 것 이 가장 근본 적 인 원칙 이다.개폐 원칙 은 6 대 원칙 중 가장 중요 한 것 이 니 하나의 총 원칙 이 라 고 할 수 있 습 니 다!
이론 적 으로 우 리 는 개폐 원칙 을 엄 격 히 지 켜 야 하지만 현실 은 그리 이상 적 이지 않다.어떤 소프트웨어 도 디자인 할 때 후속 발전 중의 모든 수 요 를 예측 할 수 없 기 때문에 현실 상황 은 수정 이 거의 불가피 하 다.예 를 들 어 자바 8 에서 stream 을 위해 삼 관 을 망 치 는 default 방법 을 추 가 했 는데 이것 이 바로 살 아 있 는 예 이다.우 리 는 디자인 을 할 때 가능 한 한 이런 원칙 을 지 킬 수 밖 에 없다!
나 와 함께 마음속 으로 프로그래머 성경 의 하나님 의 지 시 를 몇 번 묵독 했다. 확장 개방, 수정 폐쇄!확장 개방, 수정 종료!확장 개방, 수정 종료!
리 씨 교체 원칙
모든 부류 가 나타 날 수 있 는 곳 은 투명 하 게 하위 클래스 로 교체 할 수 있다.즉, 자 류 는 부 류 를 확장 할 수 있 지만 부 류 의 원래 기능 을 수정 할 수 없다 는 것 이다.
is a 실현 of
.디 미트 의 법칙
디 미트 법칙 은 최소 지식 원칙 인 Least Knowledge Principle (LKP) 이 라 고도 부 릅 니 다. 자신 이 의존 해 야 할 유형 에 대해 아 는 것 이 적 을 수록 좋다 는 뜻 입 니 다!우리 의 목 표 는 충치 가 없다 는 것 이다!: -)농담 입 니 다!높 은 내부 집적, 낮은 결합.
인터페이스 격 리 원칙
비대 한 인 터 페 이 스 를 사용 하 는 것 보다 작은 인 터 페 이 스 를 여러 개 사용 하 는 것 이 더 좋다!즉, 우아 한 프로그램 은 정성 을 들 여 보호해 야 하기 때문에 그녀 를 보호 하기 위해 서 는 너무 굵 은 인 터 페 이 스 를 경멸 하고 가 는 인 터 페 이 스 를 좋아해 야 한 다 는 것 이다.: -)나 는 당신들 이 무슨 생각 을 하고 있 는 지 알 지만, 본 기사 가 가리 키 는 것 은 당신 이 생각 하 는 그런 뜻 이 아 닙 니 다!가 는 인 터 페 이 스 는 재 구성 에 유리 하 다!: -)원칙 은 위반 하 는 데 쓰 인 다!수정 닫 기?그 럴 리 가!누가 쓴 코드 를 한 걸음 에 영원히 수정 하지 않 을 수 있 습 니까?또한 가 는 인터페이스 도 클 라 이언 트 가 최소 지식 원칙 을 지 키 는 데 유리 하 다.
후진 원칙 에 의존 하 다.
구체 적 인 실현 에 의존 하지 말고 추상 에 의존 해 야 한다!즉, '인터페이스' 를 위 한 프로 그래 밍 이지 클래스 프로 그래 밍 을 위 한 프로 그래 밍 이 아 닙 니 다!이렇게 하면 클 라 이언 트 와 실현 류 의 결합 을 해제 할 수 있다.
6 대 설계 원칙 총화
개폐 원칙 은 우리 가 쓴 종 류 를 수정 하지 말 라 고 요구 하 며, 기능 이 필요 하 다 면 확장 하 라 고 요구한다.단일 직책 원칙 은 우리 에 게 한 가지 일 만 하도록 요구한다.리 씨 교체 원칙 은 우리 자 류 가 반드시 부 류 를 겸용 해 야 한다 고 요구한다.디 미트 법칙 은 우리 에 게 가능 한 한 다른 종류 에 의존 하지 말 라 고 요구한다.인터페이스 격 리 원칙 은 우리 가 인 터 페 이 스 를 정의 할 때 가능 한 한 간단 해 야 한다.후진 원칙 에 의존 하 는 것 은 우리 가 실현 류 에 의존 해 서 는 안 된다 는 것 을 요구한다!
디자인 모드 분류
GoF 23 의 디자인 모델 은 일반적으로 세 가지 로 나 뉜 다.
생 성 모드
구조 형 패턴
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.