SimUDuck 策略模式
添加一個(gè) FlySuperDuck.java implement IFlyBehavior
在具體鴨子中可以擁有這種行為:
public ModelDuck()
{
this.flybehavior=newFlySuperDuck();
}
?
這樣就可以實(shí)現(xiàn)給某種鴨子添加某種行為。
在具體鴨子中可以擁有這種行為:
public ModelDuck()
{
this.flybehavior=newFlySuperDuck();
}
?
這樣就可以實(shí)現(xiàn)給某種鴨子添加某種行為
可以添加一種接口Ispeak,有一個(gè)speak方法。這樣鴨子們就有了另一種行為speak()。
父類(lèi)中只需要添加一個(gè)speakbehavior,子類(lèi)就可以有具體的實(shí)現(xiàn)。例如有一個(gè)DonaldSpeak實(shí)現(xiàn)了Ispeak接口,子類(lèi)就可以擁有這個(gè)具體的行為n利用繼承來(lái)提供Duck的行為,這會(huì)導(dǎo)致下列哪些缺點(diǎn)?nA.代碼在多個(gè)子類(lèi)中重復(fù);
nB.運(yùn)行時(shí)的行為不容易改變;
nE. 鴨子不能同時(shí)又飛又叫,不能有多繼承;
nF.改變會(huì)牽一發(fā)而動(dòng)全身,造成其他鴨子不想要的改變;
本文出自 “Vincent” 博客,請(qǐng)務(wù)必保留此出處http://vincent1992.blog.51cto.com/4621739/1584889
總結(jié)
以上是生活随笔為你收集整理的SimUDuck 策略模式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SessionFactory 概述
- 下一篇: 批量处理---提高处理速度