国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 盈江县| 宁海县| 黔南| 寿宁县| 嘉荫县| 施秉县| 大丰市| 来安县| 酉阳| 买车| 三穗县| 鄯善县| 顺平县| 兴宁市| 西吉县| 南昌县| 白朗县| 南皮县| 时尚| 台湾省| 平安县| 新营市| 西和县| 沈丘县| 南丰县| 东乌珠穆沁旗| 乐山市| 龙州县| 镇江市| 华坪县| 梁山县| 航空| 河南省| 车致| 南和县| 松原市| 伊金霍洛旗| 双峰县| 万全县| 壤塘县| 衢州市|