[问题] Decorator Pattern的问题

楼主: SFMAndroid (安卓发送)   2018-07-28 23:45:17
最近刚开始唸设计模式
但有些地方不确定理解得对不对
希望有大大能帮忙解答
刚唸了strategy, observor, decorator三个设计模式
但是对于“封装变动”的部分还是不太懂
只知道主要概念是把“行为”独立出来
实作上是program to interface/abstract class
让Component可以实作需要的部分
目前有以下三个问题
1. 但是需要“封装”的原因有哪些?
1. 直接继承的话可能会需要实作不合理的方法
ex. Duck接口有fly()但橡胶鸭不会飞
2. 没有弹性
有实际的例子吗?
3. 其他好处
2. 如果“封装”代表要program to interface,那decorator不是打脸了吗?
书上说虽然decorator继承自abstract class
但是并没有使用他的方法
所以没有违反“封装变动的部分”原则
那strategy pattern把“行为”独立出来的意义是...?
3. 既然decorator都继承了abstract class
那为何还需要decorator这个接口?
直接让decorator的实例继承superclass(Component)不就好了?
如果有不清楚的地方 之后会再修改
谢谢~
作者: fayhong (恰似飞鸿踏雪泥)   2018-07-30 09:51:00
你读的是哪一本呢?
楼主: SFMAndroid (安卓发送)   2018-07-30 20:28:00
Head First设计模式
作者: jakarta99   2018-07-31 16:12:00
1. 设计模式是内功,有需要的时候就会需要2.Strategy 主要是你也不知道会有哪些物件可以操作,干脆提供一个你可以呼叫的 interface 给其他人实作.3. Decorator 通常是原始开发者没有想到的情况,以不破坏原本的创作, 继承后去产生新的 interface.

Links booklink

Contact Us: admin [ a t ] ucptt.com