>  기사  >  소프트웨어 디자인 패턴의 기본 개념에 대한 설명

소프트웨어 디자인 패턴의 기본 개념에 대한 설명

little bottle
little bottle앞으로
2019-04-18 17:14:372722검색

디자인 패턴은 개발자가 소프트웨어 개발 중에 반복적으로 직면하는 문제에 대해 요약한 솔루션을 말합니다. 이번 글에서는 주로 디자인 패턴을 소개합니다. 관심 있는 친구들은 한번 살펴보세요.

DesignPatternsPrinciple【디자인 패턴 원칙】

디자인 패턴의 6가지 원칙

  • 개방 및 폐쇄 원칙: 클래스, 모듈, 함수와 같은 소프트웨어 엔터티는 확장에는 개방적이고 수정에는 폐쇄되어야 합니다.

  • 리히터 대체 원칙: 기본 클래스를 참조하는 모든 장소는 해당 하위 클래스의 객체를 투명하게 사용할 수 있어야 합니다.

  • 종속성 반전 원칙: 상위 수준 모듈은 하위 수준 모듈에 의존해서는 안 되며, 둘 다 의존해야 합니다. 추상화는 세부사항에 의존해서는 안 됩니다.

  • 단일 책임 원칙: 수업 변경에 대해 한 가지 이상의 이유를 두지 마세요. 평신도의 관점에서 보면 클래스는 단 하나의 책임만 담당합니다.

  • 인터페이스 격리 원칙: 클라이언트는 필요하지 않은 인터페이스에 의존해서는 안 됩니다. 한 클래스가 다른 클래스에 종속되는 것은 가장 작은 인터페이스를 기반으로 해야 합니다.

  • Demeter's Law: 객체는 다른 객체에 대한 최소한의 지식을 유지해야 합니다.

Design Pattern

Abstract Factory(추상 팩토리 패턴) : 지정하지 않고 일련의 관련되거나 상호 의존적인 객체를 생성하기 위한 인터페이스를 제공합니다. 그들의 특정 수업.

Adapter (Adapter Pattern): 클래스의 인터페이스를 고객이 원하는 다른 인터페이스로 변환합니다. 어댑터 패턴을 사용하면 호환되지 않는 인터페이스로 인해 함께 작동하지 않는 클래스가 함께 작동할 수 있습니다.

Bridge(브리지 모드) : 추상적인 부분과 구현 부분을 분리하여 모두 독립적으로 변경할 수 있습니다.

Builder(빌더 패턴): 복잡한 객체의 구성을 표현과 분리하여 동일한 구성 프로세스가 다른 표현을 만들 수 있습니다.

Chain of Responsibility(책임 체인 모드) : 요청의 발신자와 수신자를 분리하여 여러 개체가 요청을 처리할 수 있는 기회를 갖습니다. 이러한 개체는 체인으로 연결되며 요청은 개체가 처리할 때까지 체인을 따라 전달됩니다.

명령(명령 모드): 요청을 개체로 캡슐화하여 다양한 요청으로 클라이언트를 매개변수화하거나 요청을 기록하고 취소 가능한 작업을 지원할 수 있습니다.

복합(복합 모드): 개체를 트리 구조로 결합하여 "부분-전체" 계층 구조를 나타냅니다. Composite를 사용하면 고객은 단일 개체와 복합 개체를 일관되게 사용할 수 있습니다.

Decorator(데코레이터 패턴): 객체에 몇 가지 추가 책임을 동적으로 추가합니다. 확장된 기능 측면에서 데코레이터 패턴은 서브클래싱 방법보다 더 유연합니다.

Facade(Facade 모드): 하위 시스템의 인터페이스 집합에 일관된 인터페이스를 제공합니다. Facade 모드는 하위 시스템을 더 쉽게 사용할 수 있도록 하는 고급 인터페이스를 정의합니다.

Factory Method: 객체 생성을 위한 인터페이스를 정의하고 하위 클래스가 인스턴스화할 클래스를 결정하도록 합니다. 팩토리 메소드는 클래스의 인스턴스화를 하위 클래스로 연기합니다.

플라이웨이트(플라이웨이트 모드): 공유 기술을 사용하여 수많은 세밀한 개체를 효과적으로 지원합니다.

Interpreter : 언어가 주어지면 문법 표현을 정의하고 해당 표현을 사용하여 언어의 문장을 해석하는 인터프리터를 정의합니다.

Iterator(반복자 패턴): 객체의 내부 표현을 노출하지 않고 집계 객체의 각 요소에 순차적으로 액세스하는 방법을 제공합니다.

Mediator(Mediator 패턴): 중재자 개체를 사용하여 일련의 개체 상호 작용을 캡슐화합니다. 중재자는 개체가 서로를 명시적으로 참조할 필요가 없으므로 느슨하게 결합되어 상호 작용을 독립적으로 변경할 수 있습니다.

Memento(메모 모드): 객체의 내부 상태를 캡처하고 캡슐화를 파괴하지 않고 이 상태를 객체 외부에 저장합니다. 이렇게 하면 나중에 개체를 저장된 상태로 복원할 수 있습니다.

Observer(관찰자 패턴) : 객체 간의 일대다 종속 관계를 정의하여 객체의 상태가 변경되면 이에 의존하는 모든 객체가 알림을 받고 자동으로 새로 고침.

Prototype(프로토타입 모드) : 프로토타입 인스턴스를 사용하여 생성할 객체의 유형을 지정하고, 이 프로토타입을 복사하여 새 객체를 생성합니다.

Proxy(프록시 모드) : 이 개체에 대한 액세스를 제어하기 위해 다른 개체에 대한 프록시를 제공합니다.

Simple Factory(간단한 팩토리 패턴) : 다양한 매개변수에 따라 다양한 클래스의 인스턴스를 반환합니다.

Sigleton(단일 사례 모드) : 클래스에 인스턴스가 하나만 있는지 확인하고 이에 액세스할 수 있는 전역 액세스 지점을 제공합니다.

State(상태 모드) : 내부 상태가 변경되면 객체의 동작을 변경할 수 있습니다. 객체는 자신이 속한 클래스가 수정된 것처럼 보입니다.

Strategy(전략 모드) : 일련의 알고리즘을 정의하고 하나씩 캡슐화하고 상호 교환 가능하게 만듭니다. 이 모드를 사용하면 알고리즘을 사용하는 사용자와 독립적으로 알고리즘을 변경할 수 있습니다.

Template Method(템플릿 메소드 패턴) : 일부 단계를 하위 클래스로 연기하면서 작업에서 알고리즘의 골격을 정의합니다. 템플릿 방법을 사용하면 하위 클래스가 알고리즘의 구조를 변경하지 않고도 알고리즘의 특정 단계를 재정의할 수 있습니다.

Visitor(방문자 모드) : 객체 구조의 각 요소에 작용하는 작업을 나타냅니다. 클래스를 변경하지 않고도 각 요소에 대해 작동하는 새로운 작업을 정의할 수 있습니다.

디자인 패턴 간의 관계

UML 클래스 다이어그램 일러스트레이션

패턴 구조에 대해서는 나중에 UML을 사용하여 자세히 설명하므로 간단한 그림으로 설명합니다.

더 알고 싶다면 PHP中文网을 팔로우하여 더 많은 소식을 받아보세요!

위 내용은 소프트웨어 디자인 패턴의 기본 개념에 대한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제