2015년 11월 12일 목요일

Design Pattern(디자인 패턴) 분류 및 설명

1. Creational Patterns : 생성에 관한 패턴
  • Abstract Factory(추상 팩토리) (링크)
    • 서로 관련성 있거나 독립적인 여러 객체의 집합을 생성할 수 있는 인터페이스 제공하는 패턴
  • Builder(빌더) (링크)
    • 복잡한 객체를 생성하는 방법과 표현하는 방법을 정의하는 클래스를 분리하여, 서로 다른 표현 결과를 만들 수 있게 하는 패턴
  • Factory Method(팩토리 메소드) (링크)
    • 객체를 생성하는 인터페이스는 미리 정의하고, 인스턴스를 만들 클래스의 결정은 서브클래스 쪽에서 내리는 패턴
  • Protytype(원형) (링크)
    • 생성할 객체의 종류를 명세하는 데에 원형이 되는 예시물을 이용하고, 그 원형을 복사함으로써 새로운 객체를 생성하는 패턴
  • Singleton(단일체) (링크)
    • 클래스의 인스턴스가 하나만 생성이 되게 보장하며, 전역으로 설정이 되어 어디서든 접근이 가능하도록 제공하는 패턴
2. Structural Pattern : 구조적인 패턴
  • Adapter(적응자) (링크)
    • 서로 다른 클래스끼리 함께 동작할 수 있도록 인터페이스를 변환하는 패턴
  • Bridge(가교) (링크)
    • 구현에서 추상을 분리하여, 이들을 독립적으로 다양성을 가질 수 있도록 하는 패턴
  • Composite(복합체) (링크)
    • 각각의 단일 객체와 복합체를 한 종류의 클래스로 설계하여 사용자는 단일 객체든 복합체든 상관없이 똑같이 다룰 수 있는 편리함을 부여하는 패턴
  • Decorator(작성자) (링크)
    • 클래스에게 동적인 기능이나 임무를 추가하는 패턴
  • Facade(퍼사드) (링크)
    • 복잡한 서브 시스템에 대해서 간단한 인터페이스를 제공하는 패턴
  • Flyweight(플라이웨이트)
    • 크기가 작은 다수의 객체가 있을 때, 모두가 갖는 본질적인 요소를 클래스화하여 공유하므로써 메모리 절감의 효과를 보는 패턴
  • Proxy(프록시)
    • 실제 객체로 접근을 통제 및 정보은닉을 하기 위해 대리 객체를 제공하는 패턴
3. Behavioral Pattern : 행동 패턴
  • Chain of Resp(책임연쇄)
    • 요청이 들어왔을 때, 요청을 보내는 객체와 그 요청을 받는 객체 사이의 결합을 피하는 패턴
  • Command(명령)
    • 요청을 객체의 형태로 캡슐과하여 서로 요청이 다른 사용자의 명령을 지원하게 만드는 패턴
  • Interpreter(해석자) (링크)
    • 언어의 다양한 해석, 구체적으로 구문을 나누고, 그 분리된 구문의 해석을 맡는 클래스를 각각 작성하여, 여러 형태의 언어 구문을 해석할 수 있게 만드는 패턴
  • Iterator(반복자)
    • 컨테이너의 반복에 있어서 일관된 인터페이스를 두어 순차적으로 접근할 수 있는 방법을 제공하는 패턴
  • Mediator(중재자)
    • 한 집합에 속한 객체들의 상호작용을 캡슐화하는 객체를 정의하는 패턴
  • Memento(메멘토)
    • 객체의 상태를 관리하여 해당 객체가 이전 상태로 돌아갈 수 있도록 하는 패턴
  • Observer(감시자)
    • 데이터에 대한 모든 감시자들의 갱신을 자동으로 할 수 있게 하는 패턴
  • State(상태) (링크)
    • 상태를 일반적인 데이터 변수로 두지않고, 객체로 만들어 그 상태에 따른 행동을 변경할 수 있도록 하는 패턴
  • Strategy(전략) (링크)
    • 비슷한 객체들을 캡슐화하고, 교환이 가능하도록 만든 패턴
  • Template Method(템플릿 메소드) (링크)
    • 템플릿을 만들고, 서브클래스에서 구체적으로 처리할 수 있도록 하는패턴
  • Visitor(방문자) (링크)
    • 데이터(또는 객체)의 구조와 처리(기능)을 분리할 수있는 패턴
다운로드
참고
  • http://blog.naver.com/kjio9710/220504302247
  • GoF의 디자인 패턴(개정판) 재사용성을 지닌 객체지향 소프트웨어의 핵심요소
  • 기타 여러 사이트

댓글 없음:

댓글 쓰기

참고: 블로그의 회원만 댓글을 작성할 수 있습니다.