添加一个 FlySuperDuck.java implement IFlyBehavior
在具体鸭子中可以拥有这种行为:
public ModelDuck()
{
this.flybehavior=newFlySuperDuck();
}
这样就可以实现给某种鸭子添加某种行为。
在具体鸭子中可以拥有这种行为:
public ModelDuck()
{
this.flybehavior=newFlySuperDuck();
}
这样就可以实现给某种鸭子添加某种行为
可以添加一种接口Ispeak,有一个speak方法。这样鸭子们就有了另一种行为speak()。
父类中只需要添加一个speakbehavior,子类就可以有具体的实现。例如有一个DonaldSpeak实现了Ispeak接口,子类就可以拥有这个具体的行为n利用继承来提供Duck的行为,这会导致下列哪些缺点?nA.代码在多个子类中重复;
nB.运行时的行为不容易改变;
nE. 鸭子不能同时又飞又叫,不能有多继承;
nF.改变会牵一发而动全身,造成其他鸭子不想要的改变;
本文出自 “Vincent” 博客,请务必保留此出处http://vincent1992.blog.51cto.com/4621739/1584889