객체지향프로그래밍

Bridge Pattern (Structural Design Pattern) 브릿지 패턴이란? 기능과 구현을 분리하여 각각의 클래스로 만들어 구현하는 패턴이다. 기능 : Abstraction => RefineAbstraction1 => RefineAbstraction2 구현 : Implementor => ConcreteImplementor1 => ConcreteImplementor2 Abstraction(기능)은 Implementor(구현)을 소유(사용)한다. 하지만, Abstraction(기능)은 Implementor(구현)에 대해 알지 못한다. (독립되어 있음.) 브릿지 패턴의 구성요소 Abstraction : 기능을 정의하는 인터페이스 RefinedAbstraction : 기능을 정의하는 클래스 I..
Facade Pattern(Structural Design Pattern) 퍼사드 패턴이란 (StageManager) 퍼사드 패턴은 서브시스템을 감싸는 인터페이스를 제공하여 서브시스템을 사용하기 쉽게 만드는 패턴이다. Why? 프로그램이 복잡해지고, 해당 과정들이 엉키는 경우가 있을 수 있다, 이때 이 프로세스 과정을 관리하기위해 실행되는 과정을 인터페이스로 제공하는 패턴이다. 진짜 쉽게 말하면, 실제 프로세스를 단순히 관리하기 위한 패턴이다. 따라서, 퍼사드 패턴을 적용하기 위해서는 프로세스의 과정을 명확 하게 알고 있어야한다. Facade Pattern 구성요소 Facade : 클라이언트가 접근할 수 있는 인터페이스 SubSystem : 실제 서버에 접근하는 클래스 Client : Facade를 통해..
Proxy Pattern (Structural Design Pattern) 프록시 패턴은 클라이언트가 서버에 접근할 때, 중간에 프록시를 두어 클라이언트가 서버에 직접 접근하는 것이 아닌 프록시를 통해 접근하도록 하는 패턴이다. why?? - 클라이언트가 서버에 직접 접근하는 것을 막고 싶을 때 - 클라이언트가 서버에 접근할 때, 중간에 뭔가를 처리하고 싶을 때 - 클라이언트가 서버에 접근할 때, 서버에 접근하기 전에 뭔가를 처리하고 싶을 때 Proxy Pattern 구성요소 Subject : 클라이언트가 접근할 수 있는 인터페이스 RealSubject : 실제 서버에 접근하는 클래스 Proxy : 클라이언트가 접근할 때, 중간에 두는 클래스 Subject 인터페이스를 구현하고, RealSubject를 ..
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을 사용하기 위해서는 다음과 같은 과정을 거친다. 빌더 패턴은 생성될 프로덕트 객체를 생성하는 과정이 너무 복잡할때 사용하는 패턴이다. 생성하는 과정이 복잡하다 = 생성될 프로덕트의 구성요소가 많다. 라는 의미인데 빌더패턴을 통해서, 생성될 프로덕트 ..
황빵
'객체지향프로그래밍' 태그의 글 목록