Specialist in Software

디자인 패턴 규칙 본문

Software Engineering

디자인 패턴 규칙

SISW 2024. 5. 8. 23:55
728x90

디자인 패턴 규칙은 구현클래스가 아니라 인터페이스를 가지고 프로그래밍한다. 상속이 아니라 위임을 사용한다. 커플링을 최소화한다.


생성패턴   [ABFPS} 생성 (Abstract Factory, Builder, Factory Method, Prototype, Singletone)


구조패턴   [ABCDFFP] 구조 (Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy)


행위패턴 행위 (Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Templete, Visitor)


클래스패턴 [FTAI] 생성 (Factory Method), 구조 (Adapter), 행위 ( Interpretery, Templete)

 


Abstract Factory 자동차공장 동시에 객체를 여러개 생성하게 하는 패턴, 자동차조립을 위하여 부품을 한번에 생성
Factory Method 장난감공장 인스턴스 작성을 하위에게 위임- 인스턴스를 만드는 방법은 상위 클래스에서 결정하지만 구체적인 것은 하위 클래스에서 수행함, 금형이라는 메소드를 만들고 매개변수를 말, 인형을 주면 해당부품을 만듦
Singleton 싱글패턴 단 하나의 이스턴스- 클래스의 인스턴스가 단 한개만 존재하도록 프로그램 상에서 표현하는 방법, 해와 달처럼 하나만 만든다
Builder 버거킹 [생표] 제품을 여러 단계로 나눠서 만들 수 있도록 제품 생산 단계를 캡슐화하고 싶은 경우, abstract factory의 진화된 형태, 버거세트 주문 시 각 요리를 만들어 최종 접시에 담아주는 것
Bridge 스위치패턴  [추구] 구현뿐만 아니라 추상화된 부분까지 변경시켜야 하는 경우
Decorator 액자패턴 객체에 추가적인 기능이나 내용을 덧 붙이는 구조, 윈도우의 고전스타일 창
Chain of responsibility 중계패턴 한 요청을 두 개 이상의 객체에서 처리하고 싶은 경우, 동전계수기에서 자동으로 같은 금액단위로 분리
Flyweight connection pool 패턴 어떤 클래스의 인스턴스 한 개만 가지고 여러개의 가상 인스턴스를 제공하는 경우, 다수의 전화가입자를 서비스하는 교환기
Interpreter 번역패턴 어떤 언어에 대한 인터프리터를 만들 때, XML파서,언어번역기
mediator 관제패턴 서로 관련된 객체 사이의 복잡한 통신과 제어를 한 곳으로 집중시키고자 하는 경우
Memento 단기 기억패턴 객체를 이전의 상태로 복구시켜야 하는 경우, mp3재시작시 마지막 위치에서 재생시작, 전화번호 단축키
Prototype 복제패턴 어떤 클래스의 인스턴스를 만드는 것이 자원/시간을 많이 잡아먹거나 복잡한 경우, 세포분열처럼 복제되는 형태
Proxy 114패턴 객체를 액세스할 수 있는 위치를 제공하는 패턴
Composite 트리패턴 트리구조를 표현하는 구조패턴, 연산식의 표현이나 윈도우의 디렉토리 구조
Visitor 지원병 패턴 [알객] 구조안을 돌아다니면서 일을 한다- 데이터 구조가 보관하고 있는 요소에 특정의 기능을 추가하는데 사용
Observer 경매패턴 상태의 변화를 통지한다- 상태변화에 따른 처리를 기술할때 유효함, 일대다 관계 표현
Facade 콜센터패턴 간단한 창구- 대규모 프로그램을 사용해서 처리를 하려면 관련있는 많은 클래스들을 적절히 제어해야 함. 많은 클래스들을 제어하기 위해 창구가 필요하며 클래스들을 개별적으로 제어하지 않고 창구에서 요구만 수행함
Adaptor 전기어뎁터 필요한 형태로 수정해서 재활용한다 - 인터페이스가 다른 클래스들을 연결하는 패턴으로 이미 제공되어 있는 것과 필요한 것 사이의 간격을 메우는 디자인 패턴, 드라이버 소켓을 맞추는 젠더
Strategy 선택판단 패턴 여러개의 알고리즘 중 목표와 제약에 따라 최적의 알고리즘을 선택하는 행위 패턴
Template 골격패턴 기본 알고리즘을 별도로 분리하는 패턴
Command 주문메뉴패턴 요청자체를 객체로 생성하고 상세요청내용을 매개변수로 처리하는 인터페이스
Iterator 탐색패턴 객체의 구조를 변화시키지않고 복합객체를 탐색하는데 사용, TV의 next, previous버튼과 동일한 구현
State 자판기패턴 내부상태 변화가 발생한 경우 객체가 행동을 변화시키는 패턴, 담배재고가 없을 시 품절표시