码迷,mamicode.com
首页 > 其他好文 > 详细

装饰者模式

时间:2015-09-06 22:52:55      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:

装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。就像是窗户一样,先是玻璃,玻璃装上框架,再涂上颜色,每进行一层,都会增加新一层赋予的新功能:

 1 //抽象构件接口
 2 interface Component{
 3     public void method();
 4 }
 5 
 6 //具体构件类
 7 class ConcreteComponent implements Component{
 8 
 9     @Override
10     public void method() {
11         //业务代码
12     }
13     
14 }
15 
16 //装饰者类
17 class Decorator implements Component{
18 
19     private Component component;
20     
21     public Decorator(Component component){
22         this.component = component;
23     }
24     
25     @Override
26     public void method() {
27         component.method();
28     }
29     
30 }
31 
32 //具体装饰者类
33 class DecoratorA extends Decorator{
34     
35     public DecoratorA(Component component){
36         super(component);
37     }
38     
39     public void method(){
40         super.method();
41         //其他业务代码
42     }
43 }
44 
45 class DecoratorB extends Decorator{
46     
47     public DecoratorB(Component component){
48         super(component);
49     }
50     
51     public void method(){
52         super.method();
53         //其他业务代码
54     }
55 }
56 
57 public class MyTest {
58 
59     /**
60      * @param args
61      */
62     public static void main(String[] args) {
63         Component part = new ConcreteComponent();
64         Component part1 = new DecoratorA(part);
65         Component part2 = new DecoratorA(part1);
66         part2.method();
67     }
68 
69 }

 

装饰者模式

标签:

原文地址:http://www.cnblogs.com/gsbm/p/4787184.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!