IT, 프로그래밍/Design Patterns
-
[디자인패턴] 데코레이터 패턴 (Decorator Pattern)IT, 프로그래밍/Design Patterns 2017. 10. 21. 19:22
데코레이터 패턴(Decorator pattern)이란 주어진 상황 및 용도에 따라 어떤 객체에 책임을 덧붙이는 패턴으로, 객체에 추가적인 요건을 동적으로 첨가하며, 기능 확장이 필요할 때 서브클래싱 대신 쓸 수 있는 유연한 대안이 될 수 있다. 복잡해 보이는 설명을 예시로 한 번 풀어서 표현해 보겠습니다. (본문에 나오는 예시가 아주 좋아서 그 주제를 가지고 설명하겠습니다.) 이 글을 보고 계시는 대부분의 분들이 카페에 한 번쯤 가보셨다고 생각을 합니다. 카페에 가서 주문을 하는 상황을 한 번 상상해 봅시다. 문을 밀고 들어가서 카운터에서 점원에게 주문을 합니다. "따뜻한 카페라떼 한 잔 주세요!", 옆에서 커피가 나오는 동안 기다리는데, 다른 손님이 들어와서 주문을 합니다. "카라멜 프라푸치노에, 헤이..
-
[디자인패턴] 옵저버 패턴 (Observer Pattern) - Java 내장 객체 사용IT, 프로그래밍/Design Patterns 2017. 10. 4. 13:07
지난 시간에는 옵저버 패턴의 기본 개념과 구현하는 것에 대해서 알아보았습니다. 우리가 알아본 옵저버 패턴은 흔하게 사용하는 디자인 패턴 중에 하나입니다. 특히 이벤트 처리에 사용되는데요. 자바의 swing 프로그래밍을 접해 보신 분들은 eventListener에 대해서 익숙하실 겁니다. 이벤트리스너를 통해 우리는 특정한 입력 신호가 들어 올 때 마다, 원하는 행동을 하도록 할 수 있습니다. 이 이벤트 처리 과정은 옵저버 패턴을 사용해 구현하였습니다. 컴포넌트에 eventListener라는 옵저버 부착하면, 해당 컴포넌트에서 발생하는 이벤트를 감시할 수 있습니다. 자바에서는 이 패턴을 편하게 사용할 수 있도록 API로 만들어 지원합니다. Observer 인터페이스와 Observable 클래스를 사용해서 지..
-
[디자인패턴] 스트래티지 패턴 (Strategy Pattern)IT, 프로그래밍/Design Patterns 2017. 9. 23. 01:25
스트래티지 패턴 (Strategy Pattern) = 알고리즘군을 정의하고 각각을 캡슐화하여 사용할 수 있도록 만든다. 스트래티지를 활용하면 알고리즘을 사용하는 클라이언트와는 독립적으로 알고리즘을 변경 할 수 있다. 상당히 설명이 어렵습니다. 처음 듣는 사람은 한 번에 이해 하기가 어려운 설명입니다. 위키 백과에서 한 번 볼까요? In computer programming, the strategy pattern (also known as the policy pattern) is a behavioural software design pattern that enables selecting an algorithm at runtime. The strategy patterndefines a family of al..
-
스트래티지 패턴 예제IT, 프로그래밍/Design Patterns 2017. 9. 18. 11:42
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816..