Java开发网 |
注册 |
登录 |
帮助 |
搜索 |
排行榜 |
发帖统计
|
您没有登录 |
» Java开发网 » Design Pattern & UML
打印话题 寄给朋友 订阅主题 |
作者 | Re:Decorator 与 Composite 模式? [Re:jameszhang] |
emarket
亢龙有诲 CJSDN高级会员 发贴: 460 积分: 82 |
于 2004-11-21 14:18
一个具体的例子来 说明区别吧 在composite pattern里面,能独立完成功能的是 component. 当然,有两种componet 一种是leaf component, 一种是 composite componet. 在Decorator pattern里面,能够独立完成功能的是 concreteComponent, decorator不可以单独完成功能。例如JDK 里面 IO 库的 设计, BufferredInputStream 实际上是不可以单独完成 InputStream 的功能的。 也就是说, composite pattern里面 有用的是 component, 而 Decroator pattern 里面 有用的是 concreteComponent。 还有一个区别就是multiplicity, 在 decorator pattern里面, decorator 和 component的对应关系 是 一个 decorator 对应一个 componnet。 而 composite pattern里面 一个composite可以对应多个componnet。 个人Blog http://agilespeaking.blogspot.com/ |
作者 | Re:Decorator 与 Composite 模式? [Re:jameszhang] |
emarket
亢龙有诲 CJSDN高级会员 发贴: 460 积分: 82 |
于 2004-11-22 10:27
FileInputStream or ByteInputStream (component) 都是可以完成一定功能的inputstream, 而 BufferedInputStream (decorator)则不可以,必须和其他的inputstream联合使用才可以 个人Blog http://agilespeaking.blogspot.com/ |
作者 | Re:Decorator 与 Composite 模式? [Re:jameszhang] |
emarket
亢龙有诲 CJSDN高级会员 发贴: 460 积分: 82 |
于 2004-11-23 13:46
jameszhang wrote: James 是人,可以干活,衣服不可以干活,穿上了衣服的 James(decorator后的component) 比较暖和,干活比较卖劲。 另外从multiplicity的角度理解,一个衣服同时只能被一个James穿:) (decorator只可以修饰一个component) 个人Blog http://agilespeaking.blogspot.com/ |
已读帖子 新的帖子 被删除的帖子 |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |