Young Jun Park (박영준)
Java back-end developer
Park Young Jun
Github : https://github.com/june0313
Y3S Study group : https://github.com/y3s-study
2018.07.10
소프트웨어를 설계할 때 특정 맥락에서 자주 발생하는 고질적인 문제들이 또 발생했을 때 재사용 할 수 있는 훌륭한 해결책
이전의 많은 개발자들이 고민하고 정제한 사실상의 표준 설계 패턴
개발 현장에서 비즈니스 요구사항을 프로그래밍으로 처리하면서 만들어진 다양한 해결책 중 많은 사람들이 인정한 Best Practice를 정리한 것
디자인 패턴은 객체 지향 특성과 설계 원칙을 기반으로 구현되어 있다.
문제가 발생하는 여러 상황을 기술. 패턴이 적용될 수 있는 상황
패턴이 적용되어 해결될 필요가 있는 여러 디자인 이슈. 여러 제약 사항과 영향력도 문제 해결을 위해 고려되어야 함
문제를 해결하도록 설계를 구성하는 요소들과 그 요소들 사이의 관계, 책임, 협력 관계를 기술. 구체적인 방법이나 언어의 의존적이지 않으며 다양한 상황에 적용할 수 있는 템플릿
클래스가 객체를 생성하는 과정을 제어해야 하는 상황
전역적으로 접근하고 관리할 필요가 있는 데이터를 포함한다. 동시에 이 데이터는 시스템에 유일하다. 어떤 방식으로 생성되는 객체의 수를 하나로 제어할 것인가?
클래스의 생성자를 public으로 하지 말고 private이나 protected로 선언해서 외부에서 생성자를 이용해 객체를 일단 생성할 수 없게 만들고...(생략)
A :
A :
B :
B :
이 클래스의 객체는 하나만 생성해야 하는데 어떤 방법이 좋을까?
클래스의 생성자를 public으로 하지 말고 private이나 protected로 선언해서 외부에서 생성자를 이용해 객체를 일단 생성할 수 없게 만들고...(생략)
이 클래스의 객체는 하나만 생성해야 하는데 어떤 방법이 좋을까?
싱글턴 패턴을 사용하면 되겠네!
Before naming
After naming
에릭 감마, 리차드 헬름, 랄프 존슨, 존 브리시즈
Gang of Four :
디자인 패턴을 23가지로 정리
생성, 구조, 행위의 3가지로 디자인 패턴을 분류
생성(Creational) 패턴 | 객체 생성과 관련된 패턴 |
구조(Structural) 패턴 | 클래스나 객체를 조합해 더 큰 구조를 만드는 패턴 |
행위(Behavioral) 패턴 | 객체나 클래스 사이의 알고리즘이나 책임 분배에 관련된 패턴 |
객체 생성에 관련된 패턴
클래스나 객체를 조합해 더 큰 구조를 만드는 패턴
객체나 클래스 사이의 알고리즘이나 책임 분배에 관련된 패턴
Collaboration
By Young Jun Park (박영준)
디자인 패턴에 대한 개략적인 안내입니다.