GOF

Bridge Pattern (Structural Design Pattern) 브릿지 패턴이란? 기능과 구현을 분리하여 각각의 클래스로 만들어 구현하는 패턴이다. 기능 : Abstraction => RefineAbstraction1 => RefineAbstraction2 구현 : Implementor => ConcreteImplementor1 => ConcreteImplementor2 Abstraction(기능)은 Implementor(구현)을 소유(사용)한다. 하지만, Abstraction(기능)은 Implementor(구현)에 대해 알지 못한다. (독립되어 있음.) 브릿지 패턴의 구성요소 Abstraction : 기능을 정의하는 인터페이스 RefinedAbstraction : 기능을 정의하는 클래스 I..
Decorator Pattern ( Structural Design Pattern ) 데코레이터 패턴이란? 원하는 기능을 감싸는 데코레이터를 만들어 기능을 추가하는 패턴이다. 기능을 추가하는 데코레이터는 기능을 추가하는 인터페이스로 구현한다. 데코레이터 패턴의 구성요소 Component : 기능이 추가되는 대상이 되는 인터페이스 ConcreteComponent : 기능이 추가되는 대상이 되는 클래스 Decorator : 기능을 추가할 때 사용하는 데코레이터 클래스 ConcreteDecorator : 기능을 추가할 때 사용하는 데코레이터 클래스 Client : 데코레이터 패턴을 사용하는 클래스 데코레이터 패턴의 구조 케이크 (Component) 생크림케이크 (ConcreteComponent) 치즈케이크 (..
Adaptor Pattern (Structural Pattern) 아답터 패턴은 Wrapper 패턴이라고도 불린다. Wrapper 패턴은 감싸는 것이라는 의미인데 다른 인터페이스를 감싸서 사용하는 것이다. 어댑터 패턴은 인터페이스 호환성 문제 때문에 같이 쓸 수 없는 클래스들을 연결해서 쓸 수 있게 해준다. 아댑터 패턴 2가지 종류 클래스에 의한 어댑터 상속을 통해 어댑터를 구현 객체에 의한 어댑터 위임을 통해 어댑터를 구현 Adaptor Pattern의 예시 (클래스에 의한 어댑터) class Animal: def walk(self): print("walk") class Cat(Animal): def Walk(self): print("cat walk") class Dog(Animal): def Walk..
Builder Pattern (Creational Pattern) 생성할 프로덕트의 구성요소가 많을때, 생성하는 빌더 클래스를 분리하여, 생성자의 파라미터가 많아졌을때, 가독성을 높이기 위해 사용한다. Builder Pattern의 작동방식 우선 Builder Partten을 사용하기 위해서는 다음과 같은 요소들이 필요하다. Builder 인터페이스 Builder 구현 클래스 생성될 프로덕트 인터페이스 생성될 프로덕트 구현 클래스 Builder Pattern을 사용하기 위해서는 다음과 같은 과정을 거친다. 빌더 패턴은 생성될 프로덕트 객체를 생성하는 과정이 너무 복잡할때 사용하는 패턴이다. 생성하는 과정이 복잡하다 = 생성될 프로덕트의 구성요소가 많다. 라는 의미인데 빌더패턴을 통해서, 생성될 프로덕트 ..
Design Pattern 의 SOLID 원칙 Single Responsibility Principle about Single Responsibility Principle (단일 책임 원칙) : 모든 클래스는 하나의 책임만을 가져야한다. 클래스를 구현 할 때, 한 가지 기능에만 중점을 두고 구현해야한다. Why? : 만약 어떤 클래스가 다중 기능을 소유한다면, 수정하는데 어려움이 있을 수있다. 따라서, 특정 기능을 수정할 때 , 관련 클래스외에 건들필요강 없도록 설계해야함 단일 책임 원칙을 따르지 않았을 때, 수정이 어려워지고, 코드의 재사용성이 떨어진다. 코드의 재사용성을 높이기 위해서는, 단일 책임 원칙을 따르며, 다형성 을 이용해야한다. 다형성 : 하나의 인터페이스를 구현하는 여러 클래스들이 있을 ..
황빵
'GOF' 태그의 글 목록