Skip to content

ca1af/design_pattern_prac

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

개요

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에 저장하거나,

로그로 기록하거나

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

About

디자인 패턴 연습!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages