>Java >Java베이스 >디자인 패턴의 개념을 간략하게 설명

디자인 패턴의 개념을 간략하게 설명

王林
王林원래의
2020-04-22 10:08:473179검색

디자인 패턴의 개념을 간략하게 설명

디자인 패턴이란 무엇입니까

디자인 패턴은 반복적으로 사용되고 대부분의 사람들에게 알려져 있으며 분류되고 목록화된 일련의 코드 디자인 경험을 요약한 것입니다. 특정 언어와 관련이 있으며 아이디어입니다.

객체 지향적 사고를 터득해야만 디자인 패턴을 더 잘 이해할 수 있고, 그 반대의 경우도 마찬가지입니다.

디자인 패턴은 프로그래머가 소프트웨어 엔지니어링 실습 중에 요약한 좋은 프로그래밍 방법입니다.

총 23가지 디자인 패턴이 있습니다.

이 23개 디자인 패턴의 핵심은 객체 지향 디자인 원칙의 실제 적용과 클래스의 캡슐화, 상속 및 다형성은 물론 클래스의 연관 및 결합 관계에 대한 완전한 이해입니다.

(추천 관련 동영상 튜토리얼: java 동영상)

디자인 패턴 분류

1. 생성 패턴

창의적 패턴(5종): 싱글톤 패턴, 팩토리 메소드 패턴, 추상 팩토리 패턴, 빌더 모드, 프로토타입 모드.

2. 구조 모드

구조 모드(7종): 어댑터 모드, 데코레이터 모드, 프록시 모드, 외관 모드, 브리지 모드, 조합 모드, 플라이웨이트 모드.

3. 행동 패턴

행동 패턴(11종): 전략 패턴, 템플릿 메소드 패턴, 관찰자 ​​패턴, 반복 하위 패턴, 책임 사슬 패턴, 명령 패턴, 메모 패턴, 상태 패턴, 방문자 패턴, 중개자 통역사 모드 그리고 통역사 모드.

디자인 패턴의 6가지 원칙

일반 원칙: 개방형 및 폐쇄형 원칙

확장에는 개방되고 수정에는 폐쇄됩니다. 프로그램을 확장해야 하는 경우 원본 코드를 수정할 수 없지만 핫스왑 효과를 얻으려면 원본 코드를 확장해야 합니다. 따라서 한 문장으로 요약하면 다음과 같습니다. 프로그램을 확장 가능하고 유지 관리 및 업그레이드하기 쉽게 만들기 위해서입니다.

이 효과를 얻으려면 인터페이스와 추상 클래스 등을 사용해야 합니다. 이에 대해서는 나중에 구체적인 디자인에서 언급하겠습니다.

1. 단일 책임 원칙

클래스를 변경하는 데는 한 가지 이상의 이유가 있어서는 안 됩니다. 즉, 각 클래스는 단일 책임을 구현해야 합니다. 그렇지 않으면 클래스를 분할해야 합니다.

2. 리스코프 대체 원칙

기본 클래스가 나타날 수 있는 곳이면 어디든 하위 클래스가 나타날 수 있습니다. Liskov 대체 원칙은 상속 재사용의 초석입니다. 파생 클래스가 기본 클래스를 대체할 수 있고 소프트웨어 유닛의 기능이 영향을 받지 않는 경우에만 기본 클래스를 실제로 재사용할 수 있으며 파생 클래스에 새 클래스를 추가할 수도 있습니다. 기본 클래스 동작의 기초입니다.

리스코프 대체 원칙은 "개방-폐쇄" 원칙을 보완한 것입니다. "개방-폐쇄" 원칙을 실현하는 핵심 단계는 추상화입니다. 기본 클래스와 하위 클래스 간의 상속 관계는 추상화의 특정 구현이므로 Liskov 대체 원칙은 추상화를 달성하기 위한 특정 단계에 대한 사양입니다. Liskov 대체 원칙에 따르면 하위 클래스는 상위 클래스의 메서드를 덮어쓰거나 오버로드하지 않도록 노력해야 합니다. 상위 클래스는 정의된 구조를 나타내고 이 표준화된 인터페이스를 통해 외부 세계와 상호 작용하기 때문에 하위 클래스는 이를 함부로 파괴해서는 안 됩니다.

3. 의존성 역전 원칙

인터페이스 지향 프로그래밍은 구체성보다는 추상성에 의존합니다. 코드를 작성할 때 구체적인 클래스를 사용하면 구체적인 클래스와 상호 작용하는 것이 아니라 구체적인 클래스의 상위 인터페이스와 상호 작용합니다.

4. 인터페이스 분리 원칙

서브클래스에서 사용하지 않지만 구현해야 하는 메서드는 각 인터페이스에 없습니다. 그렇지 않은 경우 인터페이스를 분할해야 합니다. 단일 인터페이스(여러 인터페이스 방법을 하나의 인터페이스로 결합)를 사용하는 것보다 격리된 여러 인터페이스를 사용하는 것이 더 좋습니다.

5. 데메테르 원리(Demeter 원리)

클래스가 자신이 의존하는 클래스에 대해 덜 알수록 좋습니다. 종속 클래스가 아무리 복잡하더라도 로직은 메소드 내부에 캡슐화되어 공용 메소드를 통해 외부에 제공되어야 합니다. 이렇게 하면 종속 클래스가 변경될 때 클래스에 미치는 영향이 최소화됩니다.

가장 잘 알려지지 않은 원칙의 또 다른 표현은 바로 직접적인 친구하고만 소통한다는 것입니다. 클래스 간에 결합 관계가 있는 한 이를 친구 관계라고 합니다. 결합은 의존성, 연관성, 집합성, 결합성 등으로 구분됩니다. 멤버 변수, 메소드 매개변수, 메소드 반환 값에 나타나는 클래스를 직접 친구라고 부릅니다. 지역 변수와 임시 변수는 직접적인 친구가 아닙니다. 익숙하지 않은 클래스는 클래스의 지역 변수로 표시되지 않아야 합니다.

6. 복합 재사용 원칙

상속을 사용하는 대신 합성/집계를 먼저 사용해 보세요.

추천 튜토리얼: Java 시작하기

위 내용은 디자인 패턴의 개념을 간략하게 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.