A*******e 发帖数: 2419 | 1 第一章,讲strategy pattern,举的例子是simulated duck,基类duck,派生mallard
duck,redhead duck,rubber duck。基类添加fly()导致rubber duck可以fly(),说这
是个问题,rubber duck不应该fly。
但这个例子本身就有问题啊。duck基类怎么能同时派生真正的动物鸭子和玩具橡皮鸭?
两个鸭子本来就不是一回事。这根本不是对现实世界的抽象,改成bird派生eagle、
pigeon和ostrich还差不多。
亚马逊打分四星半。
https://www.amazon.com/Head-First-Design-Patterns-Brain-Friendly/dp/
0596007124 |
N*****m 发帖数: 42603 | 2 DP还是看四人帮的吧
mallard
【在 A*******e 的大作中提到】 : 第一章,讲strategy pattern,举的例子是simulated duck,基类duck,派生mallard : duck,redhead duck,rubber duck。基类添加fly()导致rubber duck可以fly(),说这 : 是个问题,rubber duck不应该fly。 : 但这个例子本身就有问题啊。duck基类怎么能同时派生真正的动物鸭子和玩具橡皮鸭? : 两个鸭子本来就不是一回事。这根本不是对现实世界的抽象,改成bird派生eagle、 : pigeon和ostrich还差不多。 : 亚马逊打分四星半。 : https://www.amazon.com/Head-First-Design-Patterns-Brain-Friendly/dp/ : 0596007124
|
s***o 发帖数: 2191 | |
A*******e 发帖数: 2419 | 4 学而不思则罔嘛。
还是这个例子,为何不能用Flyable和Quackable的interface呢?书上说是因为如此每
个鸭子都要实现这些接口。但推荐的FlyBehavior和QuackBehavior不是一样么?唯一的
区别就是is a和has a。当然可以说has a更好(arguably),但并没达到“必须如此”
的级别。
【在 s***o 的大作中提到】 : 钻牛角尖了,这样看书太累:)
|
r*g 发帖数: 3159 | 5 只要呱呱叫就是鸭子。
mallard
【在 A*******e 的大作中提到】 : 第一章,讲strategy pattern,举的例子是simulated duck,基类duck,派生mallard : duck,redhead duck,rubber duck。基类添加fly()导致rubber duck可以fly(),说这 : 是个问题,rubber duck不应该fly。 : 但这个例子本身就有问题啊。duck基类怎么能同时派生真正的动物鸭子和玩具橡皮鸭? : 两个鸭子本来就不是一回事。这根本不是对现实世界的抽象,改成bird派生eagle、 : pigeon和ostrich还差不多。 : 亚马逊打分四星半。 : https://www.amazon.com/Head-First-Design-Patterns-Brain-Friendly/dp/ : 0596007124
|
k**n 发帖数: 3989 | 6 两个女人四五百只鸭子,所以女人也是鸭子
谁说橡皮鸭不能飞?子类overwr从窗户扔出去就行了
【在 r*g 的大作中提到】 : 只要呱呱叫就是鸭子。 : : mallard
|