麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

簡單工廠模式

2019-11-14 08:43:26
字體:
來源:轉載
供稿:網友

  簡單工廠模式

  參考大話設計模式中簡單工廠模式,以兩個數字的加減乘除運算為例來分析簡單工廠模式的優缺點

  分析思考

  1.從分層角度思考,數據計算和數據輸入體現在業務處理和業務展示兩個層面上,因此不能將兩者進行雜糅,封裝越發獨立越好。

  2.程序中不同的地方在于計算方式的不同,所以對如何計算需要進行單獨處理,不可能是通用的處理方式。

  業務開發

 

package com.neutron.simple.factroy;/** * 操作抽象類 *  * @author neutron * */public abstract class Operate {	PRivate double numberA;	private double numberB;		/**	 * 數字計算方法	 * 	 * @return 	 */	public abstract double count();		public double getNumberA() {		return numberA;	}	public void setNumberA(double numberA) {		this.numberA = numberA;	}	public double getNumberB() {		return numberB;	}	public void setNumberB(double numberB) {		this.numberB = numberB;	}	@Override	public String toString() {		return "Operate [numberA=" + numberA + ", numberB=" + numberB + "]";	}	}  
package com.neutron.simple.factroy;/** * 加法操作類 *  * @author neutron * */public class OperateAdd extends Operate {	@Override	public double count() {		return this.getNumberA() + this.getNumberB();	}}  
package com.neutron.simple.factroy;/** * 減法操作類 *  * @author neutron * */public class OperateSub extends Operate {	@Override	public double count() {		return this.getNumberA() - this.getNumberB();	}}
package com.neutron.simple.factroy;/** * 工廠類 *  * @author neutron * */public class Factory {	/**	 * 獲取操作類對象	 * 	 * @param operateMark 操作標識	 * @return 操作對象	 */	public static Operate getInstance(String operateMark) {		Operate operate; 		switch(operateMark) {			case "+": operate = new OperateAdd();break; 			case "-": operate = new OperateSub();break; 			default:operate = new OperateAdd();break; 		}		return operate;	}}
/** * 業務邏輯處理 *  * 簡單工廠設計模式 * 1.以兩個數據的操作為例 * 2.參考來源:大話設計模式 *  * 簡單工廠優缺點總結: * 1.封裝變化,比如操作抽象類,所有的變化都是對數據的操作 * 2.增加可拓展性,符合開閉原則,新增加的業務邏輯只需要繼承操作類即可 * 3.工廠類不沒有符合開閉原則,但已經將修改范圍盡可能縮小。 *  * 思考: * 和現實生活關聯,那么就會減少知識孤島問題的存在,不會出現出現學會就忘的情況。 * 如果羅馬只有幾條小道可以通向,那么它注定會被遺忘,但是如果上下入地水路無數條道路可以抵達, * 那么一定會深刻記憶在腦海中,就會存在何時使用就可以通過幾種路徑獲取該知識。 */package com.neutron.simple.factroy;

  客戶端

 

package com.neutron.simple.client;import java.util.Scanner;import com.neutron.simple.factroy.Factory;import com.neutron.simple.factroy.Operate;public class CountClient {	public static void main(String[] args) {		Scanner scanner = new Scanner(System.in);		System.out.println("請輸入操作數:");		double numberA = scanner.nextDouble();		System.out.println("請輸入操作符號:(+/-)");		String operateMark = scanner.next();		System.out.println("請輸入被操作數:");		double numberB = scanner.nextDouble();		scanner.close();				Operate oper = Factory.getInstance(operateMark);		oper.setNumberA(numberA);		oper.setNumberB(numberB);		System.out.println("操作結果是:" + oper.count());	}		/**	 * 不足:	 * 頁面展示邏輯中盡可能不要存在業務處理邏輯	 * 此處處在業務處理邏輯,因此此處封裝并不是十分到位。	 */}
/** * 客戶端操作界面 *  * @author neutron */package com.neutron.simple.client;

  運行結果

請輸入操作數:1請輸入操作符號:(+/-)+請輸入被操作數:1操作結果是:2.0  


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美亚成人 | 国产做爰全免费的视频黑人 | 久久精品视频黄色 | 毛片在线免费 | 视频一区国产 | 欧美日韩精品一区二区三区不卡 | 欧美日韩一区二区综合 | 欧美a∨一区二区三区久久黄 | 中文字幕线观看 | 久久99亚洲精品久久99果 | 国产无遮挡一区二区三区毛片日本 | 日韩av成人| 国产精品呻吟 | 国产精品99久久久久久大便 | 成人三级电影网站 | 亚洲成人免费影视 | 91麻豆精品国产91久久久更新资源速度超快 | xxxxxx中国| 久久美女色视频 | 国产精品麻豆一区二区三区 | 久久久久久久久成人 | 成人h视频在线 | 亚洲第一页在线观看 | 久久国产成人午夜av浪潮 | 中文在线国产 | 啪啪激情| 色交视频| 一区二区三区在线观看免费视频 | 中文字幕免费在线观看视频 | 免费的性生活视频 | 日日狠狠久久偷偷四色综合免费 | 成人在线视频一区 | 狠狠干网站 | 久久亚洲成人网 | 久久国产精品二国产精品中国洋人 | 欧美成网 | 高清国产午夜精品久久久久久 | 精品国产一区二区三区在线观看 | 国产午夜精品视频免费不卡69堂 | 欧美成人午夜精品久久久 | 欧美成人一区二区三区电影 |