디자인 패턴은 개발자가 소프트웨어 개발 중에 반복적으로 직면하는 문제에 대해 요약한 솔루션을 말합니다. 이번 글에서는 주로 디자인 패턴을 소개합니다. 관심 있는 친구들은 한번 살펴보세요.
개방 및 폐쇄 원칙: 클래스, 모듈, 함수와 같은 소프트웨어 엔터티는 확장에는 개방적이고 수정에는 폐쇄되어야 합니다.
리히터 대체 원칙: 기본 클래스를 참조하는 모든 장소는 해당 하위 클래스의 객체를 투명하게 사용할 수 있어야 합니다.
종속성 반전 원칙: 상위 수준 모듈은 하위 수준 모듈에 의존해서는 안 되며, 둘 다 의존해야 합니다. 추상화는 세부사항에 의존해서는 안 됩니다.
단일 책임 원칙: 수업 변경에 대해 한 가지 이상의 이유를 두지 마세요. 평신도의 관점에서 보면 클래스는 단 하나의 책임만 담당합니다.
인터페이스 격리 원칙: 클라이언트는 필요하지 않은 인터페이스에 의존해서는 안 됩니다. 한 클래스가 다른 클래스에 종속되는 것은 가장 작은 인터페이스를 기반으로 해야 합니다.
Demeter's Law: 객체는 다른 객체에 대한 최소한의 지식을 유지해야 합니다.
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을 사용하여 자세히 설명하므로 간단한 그림으로 설명합니다.
더 알고 싶다면 PHP中文网을 팔로우하여 더 많은 소식을 받아보세요!
위 내용은 소프트웨어 디자인 패턴의 기본 개념에 대한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!