Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

기록 저장소

디자인 패턴 본문

Note/개념정리

디자인 패턴

resault 2019. 8. 19. 18:51

1. 정의

애플리케이션 개발시에 자주 발생하는 문제들을 해결하기 위한 일반적이고 추상화된 해결 방식을 말한다. GoF라고 불리는 네명의 개발자는 23가지의 디자인 패턴을 생성, 구조, 행위의 3가지로 분류한 바 있다.

2. 대표적인 디자인패턴 8가지

2.1. Singleton Pattern

- 각 클래스가 하나의 인스턴스만 갖도록 하는 디자인패턴이다.

- 생성자의 접근제어자를 private로 정의하며, 하나의 인스턴스를 반환하는 getInstance() 메소드를 사용한다.

 

2.2. Strategy Pattern

- 객체가 수행할 수 있는 행위들을 미리 만들어 두고, 동적으로 행위의 변경이 필요한 경우 행위를 직접 수정하는 대신 전략을 바꾸는 것으로 구현하는 디자인패턴이다.

- 행위를 추상화하여 인스턴스로 정의한 뒤에, 구체적인 행위를 구현 클래스로 작성하며, 필요에 따라 각 행위 클래스를 주입하여 사용한다.

 

2.3. Decorator Pattern

- 객체에 추가해야 할 기능이 많은 경우에 각 기능을 클래스로 만들어 두고 필요에 따라 조립하여 사용하는 디자인패턴이다.

 

2.4. Proxy Pattern

- 객체에 대한 직접적인 접근을 제어하기 위해, 대리자 역할을 하는 클래스를 구성하는 디자인패턴이다.

- 프록시 클래스는 객체를 요청하기 전에 권한 처리나, 객체 생성에 시간이 걸리는 작업의 백그라운드 처리 등을 수행할 수 있다.

 

2.5. Template Method Pattern

- 유사하지만 부분적으로 다른 작업을 수행하는 비슷한 클래스를 여러개 만들어야 하는 경우에, 상위 클래스에서 처리 흐름을 제어하고 하위 클래스에서 처리의 내용을 구체화하도록 구성하는 디자인패턴이다.

 

2.6. Template Callback Pattern

- 전략 패턴에 익명 클래스를 가미하여 사용하는 디자인패턴이다. 전략 패턴의 컨텍스트를 템플릿, 익명 클래스로부터 생성되는 객체를 콜백이라 한다.

- 전략 패턴의 기본적인 구조에서 변경이 필요한 메소드 단위로 익명객체를 생성하여 전달하는 방식이다.

 

2.7. Factory Method Pattern

- 조건에 따라 다른 객체를 생성해야 하는 경우, 객체의 생성을 팩토리 클래스에 위임하는 디자인패턴이다.

- 객체간 결합도를 낮추고, 유지보수가 용이하게 한다.

 

2.8. Adapter Pattern

- 어떤 클래스의 인터페이스를 다른 인터페이스로 변환하여, 호환되지 않는 인터페이스들을 함께 사용할 수 있게 하는 디자인패턴이다.

 

 

 

 

 

 


 

 

 

[ 참고 ]

 

 

* Reference

https://gmlwjd9405.github.io/2018/07/06/design-pattern.html

 

[Design Pattern] 디자인 패턴 종류 - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

https://brunch.co.kr/@springboot/31

 

웹프로그래밍 스터디 - 3.디자인패턴(2)-8가지 패턴

- 8가지 디자인 패턴 정리 | "웹프로그래밍 스터디"라는 주제로 글을 작성하고자 한다. 그동안 공부하고 싶었던 주제를 정리했는데, 웹 개발의 전반적인 내용이 포함될 예정이다. 아마 바쁘다는 핑계로 글 올라오는 속도가 매우 느릴 수 있다. 하루에 한 시간씩이라도 시간을 내서 스터디해야 한다!!라고 나 자신에게 다짐해본다. 아래와 같은 목차로 진행 예정이며, 목차는 변경될 수는 있다. h

brunch.co.kr

https://limkydev.tistory.com/84

https://gmlwjd9405.github.io/2018/07/09/decorator-pattern.html

 

[Design Pattern] 데코레이터 패턴이란 - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

https://gmlwjd9405.github.io/2018/07/13/template-method-pattern.html

 

[Design Pattern] 템플릿 메서드 패턴이란 - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

https://copynull.tistory.com/124

 

템플릿 메서드 패턴 (Template Method Pattern)

Template Method Pattern - 템플릿 메서드 패턴 상위 클래스에서 처리의 흐름을 제어하며, 하위클래스에서 처리의 내용을 구체화한다. 여러 클래스에 공통되는 사항은 상위 추상 클래스에서 구현하고, 각각의 상..

copynull.tistory.com

https://joont.tistory.com/148

 

템플릿 콜백 패턴

토비의 스프링은 참으로 좋은 책입니다. 새로운 기술을 소개할 때, 그냥 사용법만을 소개하지 않고 그 기술의 바탕이 되는 지식을 먼저 알려주거든요. 정말 추천합니다.. 여담이었고요, 이번에는 어떠한 기술의 바..

joont.tistory.com

https://victorydntmd.tistory.com/299

 

[디자인패턴] 팩토리 메서드 패턴 ( Factory Method Pattern )

팩토리 메서드 패턴 ( Factory Method Pattern ) 어떤 상황에서 조건에 따라 객체를 다르게 생성해야 할 때가 있습니다. 예를 들면, 사용자의 입력값에 따라 하는 일이 달라질 경우, 분기를 통해 특정 객체를 생성..

victorydntmd.tistory.com

https://sticky32.tistory.com/entry/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4%EB%94%94%EC%9E%90%EC%9D%B8%ED%8C%A8%ED%84%B4-%EC%96%B4%EB%8C%91%ED%84%B0-%ED%8C%A8%ED%84%B4-Adapter-Pattern

 

[소프트웨어/디자인패턴] 어댑터 패턴 (Adapter Pattern)

어댑터 패턴은 아무 관련없는 인터페이스간의 호환성을 도와준다. Context 사실 adapter 는 일상생활에서도 많이 볼 수 있는 형식과 같다. 흔히 말하는 돼지코와 같은 원리이다. 먼저 아래와 같은 상황이 주어진..

sticky32.tistory.com

 

'Note > 개념정리' 카테고리의 다른 글

REST API  (0) 2019.08.20
Maven  (0) 2019.08.20
객체 지향 프로그래밍(Object Oriented Programming)  (0) 2019.08.19
자바(Java)의 메모리 구조  (0) 2019.08.19
라이브러리와 프레임워크  (0) 2019.08.19