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

大话设计模式之装饰者模式

时间:2015-11-20 23:14:30      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:

装饰者模式通过使用继承,能够将对象一层一层地包装起来。

1,Person是被装饰的对象,装饰者模式的类图中,所有的类都继承自Person类。Person类有一个show方法,用来展示Person对象哪些服饰装饰了。通过继承,所有的类都有show方法,因此当人穿上了某种服饰之后,就可能调用该服饰的show方法展示出来。当没有任何服饰装饰人时,执行show方法就表示最初始的人。

 

2,抽象的服饰类继承自Person类,尽管从自然概念上讲,服饰并不是人。但这里还是使用了继承。原因之一是,这样抽象的服饰类就有了show方法,从而使得各个具体的服饰类也有了show方法,当使用某个具体的服饰去装饰对象时,就可以使用该服饰的show方法展示了。

 

3,尽管抽象的服饰类继承了Person类,但是它里面还有一个Person类的属性,这个属性就是用来给各个具体的服饰类去指明它要装饰哪个对象。由于该属性是Person类型的,因此A类服饰可以装饰B类服饰,B类服饰可以装饰C类服饰,……最终N类服饰装了Person对象(反过来看)。

 

4,由于每个具体的服饰都从父类那里继承了show方法,因此在show方法里,每个具体的服饰都有一个带有个人特性的装饰,然后再调用父类的装饰(即所谓的一层一层包装起来)。

大话设计模式之装饰者模式

标签:

原文地址:http://www.cnblogs.com/hapjin/p/4982471.html

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