Skip to content

Latest commit

 

History

History
139 lines (87 loc) · 5.46 KB

File metadata and controls

139 lines (87 loc) · 5.46 KB

개요

Head First Design Patterns

책과 함께 떠나는 디자인 패턴 여행!

직접 구현하고, 정리했습니다.




1. 전략 패턴 (Strategy Pattern)

소스 코드

한줄평 : "바뀌는 부분은 바뀌지 않는 부분과 분리해서 관리하라!


RubberDuck

오리와 함께 실습한 : 전략 패턴 정리

전략 패턴?

알고리즘군을 정의하고 캡슐화해서 각각의 알고리즘군을 수정해서 쓸 수 있게 해줍니다.

전략 패턴을 사용하면 클라이언트로부터 알고리즘을 분리해서 독립적으로 변경 할 수 있습니다.




2. 옵저버 패턴 (Observer Pattern)

한줄 평 : "객체의 다형성을 위해 상속이 아닌 구상을 사용하고, 느슨한 결합을 목표하자"


소스 코드

RubberDuck

느슨한 결합을 위해! : 옵저버 패턴 정리

옵저버 패턴?

객체의 상태 변화를 관찰하는 관찰자들,

즉 옵저버들의 목록을 객체에 "구성"하여

상태 변화가 있을 때마다

메서드 등을 통해 객체가 직접

목록의 각 옵저버에게 통지하도록 하는 디자인 패턴 ( 혹은 목록의 각 옵저버 스스로 업데이트 할 수 있음! )



3. 데코레이터 패턴 (Decorator Pattern)

한줄평 : "객체의 유연한 확장을 위해 데코레이터 패턴을 고려 할 수 있다"


소스 코드

RubberDuck

야돈이 야도란이 됐다? : 데코레이터 패턴 정리



4. 팩토리 매서드 패턴 (Factory Method Pattern)

한줄평 : "인스턴스의 복잡한 생성 로직을 분리한다!"


소스 코드

RubberDuck

인스턴스 생성 간다잇~! : 팩토리 매서드 패턴 정리

팩토리 매서드 패턴?

객체를 생성할 때 필요한 "인터페이스"(방법) 을 만듭니다.

어떤 클래스의 인스턴스를 만들지는 서브클래스에서 결정합니다.

팩토리 매서드 패턴을 사용하면, 클래스 인스턴스 만드는 일을 서브클래스에 위임하게 됩니다.




5. 싱글턴 패턴 (Singleton Pattern)

한줄평 : "하나의 인스턴스만 생성되고 사용되도록 강제하기!"


소스 코드

RubberDuck

오직 하나뿐! : 싱글턴 패턴 정리

싱글턴 패턴?

클래스의 인스턴스가 "오직 하나"만 생성 되는것을 보장합니다!



6. 커맨드 패턴 (Command Pattern)

한줄평 : "매서드 호출을 캡슐화한다! Command Pattern!"


소스 코드

RubberDuck

오직 하나뿐! : 커맨드 패턴 정리

커맨드 패턴?

요청 내역을 객체로 캡슐화해서, 객체를 서로 다른 요청 내역에 따라 매개변수화 할 수 있다.

이로 인해서 요청을 Queue에 저장하거나,

로그로 기록하거나

"요청"에 대한 작업 취소(롤백) 기능을 사용할 수 있다.