디자인 패턴
디자인 패턴더 크다 생성 패턴, 텍스처 패턴, 행동 패턴로 나눌 수 있습니다
생성 패턴 ABFPS
건축업자복잡한 인스턴스를 구성하는 구조입니다.
합성 오브젝트를 만들 때 객체 생성과 구현을 분리함으로써 동일한 생성 절차가 다른 표현 결과를 생성합니다.하다.원기완전히 새로운 일반적인 시제품을 만들어 복제하고 필요한 부분만 변경하여 사용합니다.하다.
생성할 개체의 프로토타입을 제공하는 인스턴스에서 결정할 개체의 유형을 지정합니다.공장 방법~이다 상위 클래스에서 객체를 생성하고 하위 클래스에서 인스턴스를 생성하는 인터페이스 정의하다.
부모 클래스는 인스턴스 생성 방법만 결정합니다.
하위 클래스의 데이터 생성 및 조작을 담당하는 함수를 재정의함으로써
인터페이스와 실제 객체를 생성하는 클래스를 분리하십시오.추상 공장특정 클래스에 의존하지 않음
서로 연관되거나 의존하는 객체들의 조합을 생성하는 인터페이스(API) 제공하다.
구체적인 구현은 구체적인 제품 클래스에서 이루어지며 동일한 테마의 서로 다른 공장 그룹으로 간주될 수 있습니다.하나씩 일어나는 것은 전역 변수를 사용하지 않고 하나의 객체만 생성하고 생성된 객체를 어디에서나 참조그것을 실현
반면에 클래스의 객체가 하나만 존재하도록 제한합니다.
텍스처 패턴 ABCDFFP
다리~이다 함수 및 구현 클래스 계층 구조 연결하다.
구현에서 추상화 계층을 분리함으로써 추상화 부분과 실제 구현 부분이 서로 독립적으로 확장됩니다.하다.
구현뿐만 아니라 추상화된 부분도 변경할 필요가 있을 때 사용한다.데코레이터~이다 기존 클래스에 필요한 기능을 추가하는 디자인 패턴오전.
기능 확장이 필요한 경우 상속의 대안으로 사용되며, 기존 객체의 조합을 통해 동적으로 유연하게 기능을 확장합니다.정면~이다 복잡한 시스템을 위한 통합 인터페이스 제공이것은 사용자와 시스템 간의
다른 시스템과의 결합도를 줄여 시스템 구조를 쉽게 이해할 수 있습니다.
또한 사용자 입장에서 단순한 인터페이스를 제공하여 시스템 구조를 이해하기 쉽고 접근성을 높였습니다.플라이급~이다 여러 개체로 생성하면 모든 사람이 가지고 있는 필수 클래스 요소를 공유하여 메모리를 절약할 수 있습니다.하다.
즉, 클래스 가중치 감소를 달성하면서 여러 가상 인스턴스를 제공하여 메모리를 줄이는 것입니다.구성~이다 트리 구조에서 개체 관계를 구성하여 부분-전체 계층을 나타냅니다.하다.
사용자는 단일 개체와 복합 개체를 모두 동일하게 취급합니다.대리실제 개체에 대한 대체 개체를 나타냅니다.
실제 개체에 액세스하기 전에 필요한 작업을 수행할 수 있으므로 사전 할당 없이는 중요하지 않은 작업
실제 사용할 때 할당하여 저장 공간을 절약합니다.
실물을 드러내지 않고 정보를 숨기는 역할을 한다.하는 것이다어댑터~이다 재사용할 수 있도록 기존 클래스를 정렬하는 역할을 하는 인터페이스를 만듭니다.하다.
상속이 있는 클래스 패턴과 위임이 있는 인터페이스 패턴의 두 가지 형태로 사용됩니다.
인터페이스가 호환되지 않는 클래스를 함께 사용할 수 있도록 다른 클래스 인터페이스를 오버레이하기 위한 것입니다.
행동 패턴 CCMMIISSTVO
중재인객체지향 설계에서 객체의 수가 너무 많으면 객체 간의 통신이 복잡해지며 이는 객체지향 설계에서 가장 중요한 느슨한 결합 특성에 영향을 줄 수 있습니다.
이를 통제하고 지시할 수 있는 중재자를 중간에 두고 객체지향적 목표를 달성하기 위해 중재자의 모든 것을 요구함으로써 소통의 빈도를 줄이는 것을 의미한다.
이는 상호 작용의 유연한 변경을 지원합니다.통역사언어, 특히 구문에 대한 다양한 해석을 공유하고 분리된 구문 해석과 다양한 유형의 언어 구문 해석을 담당하는 클래스를 만듭니다.
이것은 문법 자체를 캡슐화하고 사용합니다.반복자컬렉션의 구현을 노출하지 않고 컬렉션의 모든 항목에 액세스하는 방법을 제공합니다.
즉, 내부 구조를 노출하지 않고 복잡한 객체의 요소에 순차적으로 액세스할 수 있습니다.템플릿 방법특정 작업 처리의 일부를 하위 클래스로 캡슐화하고 전체 작업의 실행 구조를 변경하지 않고 특정 단계에서 수행되는 세부 사항을 변경하는 패턴입니다.
슈퍼클래스(추상 클래스)에서 함수의 골격은 추상 메소드에 의해 제공됩니다.
하위 클래스(Concrete Class)의 방식은 세부 처리를 지정하는 방식을 사용한다.
즉, 하위 클래스는 상위 작업의 구조를 변경하지 않고 작업의 일부를 수행합니다.
이렇게 하면 코드의 양이 줄어들고 유지 관리가 더 쉬워집니다.관찰자개체의 상태가 변경되면 다른 종속 개체에 알림이 전송되고 자동으로 업데이트됩니다.
가능한 경우 상호 작용하는 개체 간의 일대다 종속성 및 느슨한 결합.
개체의 상태가 변경되면 다른 개체의 상태가 함께 잠깁니다.상태객체 상태를 캡슐화하여 참조하는 방법입니다.
액션의 내용을 조건에 따라 다르게 처리할 수 있도록 변경,
변경 시 소스코드 수정을 최소화하고 유지보수의 편의성을 높일 수 있습니다.방문객각 클래스 데이터 구조에서 처리 기능을 분리하고 별도의 클래스를 만듭니다.
클래스 메서드는 각 클래스를 돌아다니며 특정 작업을 수행합니다.
객체의 구조를 변경하지 않고 별도로 기능을 추가하거나 확장할 때 사용합니다.명령실행할 기능 및 요구 사항의 캡슐화
주어진 여러 기능을 수행할 수 있는 재사용 가능성이 높은 클래스를 설계합니다.
추상 클래스에서 메서드를 만들고 각 명령이 들어올 때 적절한 하위 클래스가 선택되고 실행됩니다.전략알고리즘 그룹을 정의하고 동일한 알고리즘을 각각 클래스로 캡슐화합니다.
필요한 경우 서로 바꿔서 사용하십시오.메모리클래스 설계 관점에서 개체 정보를 저장할 필요가 있을 때 적용됩니다.
실행취소 기능을 개발할 때 사용합니다.책임의 사슬처리 연결이 함수에 대한 것일 때 정적으로 하드 코딩됨
함수처리의 연결은 변경불가능한 것이 아니라 동적으로 연결되어 있어 경우에 따라 다르게 처리될 수 있습니다.
![[객체지향] 내부클래스 [객체지향] 내부클래스](https://iron.icover.kr/1680242725144/wp-content/plugins/contextual-related-posts/default.png)