差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| study:java:design_pattern:decorator [2008/08/10 15:35] – banana | study:java:design_pattern:decorator [2008/09/03 14:25] (現在) – banana | ||
|---|---|---|---|
| 行 7: | 行 7: | ||
| </ | </ | ||
| + | {{keywords> | ||
| 行 19: | 行 19: | ||
| 인스턴스 변수가 있습니다. 데코레이터에서 새로운 메소드를 추가할 수도 있습니다. 하지만 일반적으로 새로운 메소드를 추가하는 | 인스턴스 변수가 있습니다. 데코레이터에서 새로운 메소드를 추가할 수도 있습니다. 하지만 일반적으로 새로운 메소드를 추가하는 | ||
| 대신 Component에 원래 있던 메소드를 호출하기 전, 또는 후에 별도의 작업을 처리하는 방식으로 새로운 기능을 추가합니다. | 대신 Component에 원래 있던 메소드를 호출하기 전, 또는 후에 별도의 작업을 처리하는 방식으로 새로운 기능을 추가합니다. | ||
| + | |||
| + | |||
| ===== Implementation ===== | ===== Implementation ===== | ||
| - | 예로서 위의 클래스 다이어그램에 나와있는 구상 클래스의 소스코드를 소개한다. | + | 예로서 위의 클래스 다이어그램에 나와있는 구상 클래스의 소스코드를 소개합니다. |
| - | 먼저 음료(Beverage)를 구현한 소스코드이다. | + | 먼저 음료(Beverage)를 구현한 소스코드입니다. |
| <code java> | <code java> | ||
| public class Espresso extends Beverage{ | public class Espresso extends Beverage{ | ||
| 行 45: | 行 47: | ||
| } | } | ||
| </ | </ | ||
| + | 이제 음료에 첨가되는 첨가물용 구상 데코레이터를 구현해보죠. 다음은 모카를 구현한 코드입니다. | ||
| + | <code java> | ||
| + | public class Mocha extends CondimentDecorator{ | ||
| + | Beverage beverage; | ||
| + | | ||
| + | public Mocha(Beverage beverage){ | ||
| + | | ||
| + | } | ||
| + | public String getDescription(){ | ||
| + | | ||
| + | } | ||
| + | public double cost(){ | ||
| + | | ||
| + | } | ||
| + | } | ||
| + | </ | ||