国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

策略模式學(xué)習(xí)1

2019-11-08 02:10:27
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

策略模式學(xué)習(xí)1:

從簡(jiǎn)單的模擬鴨子應(yīng)用做起:

SimUDuck.游戲中會(huì)出現(xiàn)各種鴨子,一邊游泳,一邊呱呱叫。

首先通常的設(shè)計(jì),設(shè)計(jì)一個(gè)鴨子超類,所有的鴨子都會(huì)呱呱叫,也會(huì)游泳,由超類負(fù)責(zé)處理這部分的行為實(shí)現(xiàn)代碼。

代碼分別如下:

這是一個(gè)鴨子超類

public abstract class Duck {		public void quack() {		System.out.PRintln("呱呱叫...");	}	public void swim() {		System.out.println("游來(lái)游去...");	}		abstract void display();// 每種鴨子的外觀更不同,所以設(shè)定為抽象的		/*	 * 某一天需求變了,某些鴨子要會(huì)飛。	 * 因此設(shè)計(jì)想到在超類中加入了這個(gè)方法,那么所有的鴨子都具備了會(huì)飛的行為。	 */	void fly(){		System.out.println("飛來(lái)飛去...");	}		//鴨子的其他方法}鴨子子類們:

/** * 綠頭鴨 * @author Administrator * */public class MallardDuck extends Duck {	@Override	void display() {		System.out.println("綠頭鴨..");	}}
/** * 紅頭鴨 * @author Administrator * */public class RedheadDuck extends Duck {	@Override	void display() {		System.out.println("紅頭鴨...");	}}
/** * 橡皮鴨 * @author Administrator * */public class RubberDuck extends Duck {		@Override	void display() {		System.out.println("橡皮鴨...");	}		/*	 * 橡皮鴨子不會(huì)呱呱叫	 * 但是問(wèn)題來(lái)了,這個(gè)橡皮鴨子會(huì)飛?	 * 那設(shè)計(jì)人員會(huì)說(shuō):一樣覆蓋掉就好	 */	@Override	public void quack() {		//覆蓋超類的呱呱叫		System.out.println("吱吱叫...");	}		@Override	void fly() {		//覆蓋,變成什么事兒都不做		;	}		}這樣設(shè)計(jì)就是最通常的設(shè)計(jì)了,如果需求不變,那這樣設(shè)計(jì)就沒(méi)有什么缺點(diǎn)了。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 隆化县| 浮山县| 乌拉特前旗| 三门峡市| 西畴县| 淮南市| 嘉祥县| 安图县| 阿拉善左旗| 六安市| 原平市| 六盘水市| 东山县| 额敏县| 行唐县| 阿坝| 徐汇区| 富平县| 安顺市| 邻水| 西贡区| 凤翔县| 汝南县| 兴隆县| 丰顺县| 伊吾县| 江口县| 罗源县| 乌拉特后旗| 永靖县| 庆云县| 绵阳市| 黑水县| 边坝县| 板桥市| 长顺县| 怀仁县| 乌兰浩特市| 都江堰市| 新邵县| 林口县|