본문 바로가기

Decorator Pattern2

Decorator Pattern 과제 과제 : 1) 프로그램이 실행되면 displays.txt 파일을 읽어서 내용에 따라 적절한 디스플레이를 화면에 배치한다 2) Hud Display는 기본적인 디스플레이며, 사용자가 추가할 수 있는 디스플레이는 speed, weather, time 이 있다 3) 과제에서는 문제를 단순화시키기 위해 해당 디스플레이의 내용은 time은 해당 프로그램이 실행되는 시간, weather, speed 디스플레이는 고정된 내용만을 보이는 것으로 한다 설계) Decorator를 통해 기본 화면인 Display class를 꾸며준다 코드) https://github.com/kook1932/Computer-Science/tree/master/Design%20Pattern/Decorator%20Pattern 2019. 12. 27.
Decorator Pattern 1. 정의 1) 객체에 추가적인 책임(기능)을 동적으로 부여한다. 2) decorator는 서브클래싱(상속)을 사용하지 않아도 유연하고 융통성 있는 기능 확장을 가능하게 한다. 2. 문제 1) 조금씩 기능을 추가하기 위해 새로운 클래스를 생성하는 경우 상속으로 문제를 풀면 너무 많은 상속 관계가 발생할 수 있음. 2) 예를 들어 커피에 대해서 "휘핑", "사이즈 업", "샷 추가"라는 기능이 있을 때, 기능을 추가할 때마다 기능을 추가한 상속 클래스를 만들면 상속 관계가 너무 복잡해진다. 3. 해결방안 1) 상속을 사용하지 않고 연관으로 필요한 기능 추가 4. 사용 예제 1) 커피에 옵션을 추가하는 경우 2) 자바 I/O * ConcreteDecorator는 멤버로 Component 객체를 가지고 있어야.. 2019. 12. 27.