使用模式最好的方式是:“把模式装进脑子里,然后在你的设计和已有的应用中,寻找何处可以使用他们。”,以往是代码复用,现在是经验复用。
1设计一个鸭子类,这个类首先具有一些功能,比如呱呱叫 游泳等行为。
作为OO程序员,首先想到的这很简单,设计一个超类,同时父类具有一些功能,子类继承下来就会有应有的行为。
2 突然加一个需求,比如又一种鸭子具有额外的功能,比如会飞的天鹅,如果在父类加会飞的行为,很明显这种程序设计,是不合理的。那该怎么办呢?
先渗透几个知识点:
1 在软件开发中,是什么让你深信不疑的?
那就是“change”;
设计原则:
找出应用中可能需要变化之处,把它们独立起来,不要和那些不需要变化的代码混在一起。
现在开始把鸭子的行为从父类取出来。
我们希望 设计的类具有弹性,
设计的第二个原则:针对接口编程,而不是针对实现编程。也就是针对超类型编程。
我们抽象 会飞的行为,呱呱叫的行为 等 协议。
让不同种鸭子类实现对应的行为协议编程。
最后, 就是有一个可能比 是一个更好 , 多用组合 少用继承。