RUBY

디자인패턴 본문

STUDY/CS

디자인패턴

RUBY_루비 2020. 10. 18. 23:59
디자인패턴은 프로그래밍 과정에서 코드의 구조들을 일정한 형태로 만드는 것입니다.

 

*GoF(Gang of Four) 패턴 : 대표적인 디자인 패턴

 

*디자인 패턴을 왜쓸까요?

 디자인 패턴을 사용하면 개발자들간에 소통이 쉬워지고, 코드의 재사용이 용이하며, 코드 구조를 파악하기 변할 것입니다. 

 

* 디자인패턴은 3종류로 분류할 수 있습니다. 

 

1. 생성패턴은 5가지 (A B F P S)

2. 구조패턴은 3가지 ( A B C D F F P )

3. 행위패턴은 11가지 ( C C I I M M O S S T V )

 

1. 생성패턴(A B F P S)

1) Abstract Facotry 추상팩토리

: 동일한 주제의 다른 팩토리를 묶어줍니다

2) Builder 

: 복합객체의 생성과 표현방법을 분리할 수 있도록 만들어줍니다

3) Factory Method팩토리

: 객체를 생성하는 인터페이스를 정의하지만, 인터페이스를 만들 클래스의 결정을 서브클래스가 합니다

- 생성할 객체의 클래스를 국한하지 않고 객체 생성

4) Prototype

: 기존의 객체를 복사해서 객체를 생성합니다

5) Singleton

: 하나의 클래스에 하나의 객체만 있도록 만듭니다. 

 

2. 구조패턴 ( A B C D F F P )

1) Adapter

: 인터페이스 호환을 위해서, 다른 인터페이스로 변환해준다

2) Bridge

: 추상화와 구현을 분리하여 독립적으로 변형할 수 있게 해준다

3) Composite

: 여러개의 객체를 묶어서 하나의 객체로 이용할 수 있게 해준다

- 복합객체와 단일객체를 동일하게 취급한다. 

4) Decorator

: 객체의 결합을 통해 동적으로 유연하게 확장해준다

- 유연한 확장

- 상속대신 사용 가능

5) Facade 퍼사드

: 서브시스템에 있는 인터페이스들에 대해서 하나의 통합된 인터페이스 제공

6) Flyweight 플라이급

: 작은크기의 객체들이 여러개 있을 때, 객체 생성과 조작 비용을 절감

- 여러개의 가상 인스턴스를 제공해서 메모리를 절감 

7) Proxy 프록시

: 다른 객체로의 접근을 통제하기 위해서 객체에 대한 대리자를 만들어 둔다

- 특정객체로의 접근을 제어하기 위한 것 

- 정보은닉

3. 행위패턴 ( C C I I M M O S S T V )

1) Chain of Responsibility 책임 연쇄

:  한 요청을 두 개이상의 객체에서 처리한다

2) Command 

: 요청을 객체로 캡슐화

3) Interpreter

: 문법자체를 캡슐화 

4) Iterator

: 내부구조를 노출하지 않고, 복합 객체의 원소를 순차적으로 접근할 수 있게 해준다

5) Mediator

: 객체간의 상호작용을 캡슐화한다

6) Memento

: undo와 같이 객체를 이전상태로 복구시켜야 하는 경우

7) Observer

: 객체의 상태변화에 따라 다른 객체의 상태도 연동되어 바뀐다

8) State

: 객체의 상태에 따라 행위 내용을 변경한다

9) Strategy

: 행위 객체를 캡슐화해서 동적으로 행위를 자유롭게 변환하게 해준다

10) Template Method

: 상위클래스의 구조를 바꾸지 않으면서 구체적 내용은 서브 클래스로 수행한다

11) Visitor

: 클래스에서 처리기능을 별도의 visitor로 만들어두고 해당 클래스의 메소드가 돌아다니면서 특정작업을 수행하도록 만들더준다

 

 

'STUDY > CS' 카테고리의 다른 글

[데이터베이스] SQLD 단답형 답안 모음  (0) 2020.11.10
Comments