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

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

【設計模式】工廠模式

2019-11-09 18:20:27
字體:
來源:轉載
供稿:網友

定義:

用于創建對象的接口,讓子類決定實例化哪個類

 

使用場景:

生成復雜對象使用

 

代碼實現:

public abstract class Factory<T extends PRoduct, D extends Store> {	public abstract void init();	public T product;	public D store;}public abstract class Product {	/**	 * 負責生產	 */	public abstract void product();}public abstract class Store {	/**	 * 負責存放產品	 */	public abstract void store();}/** * A產品和A倉庫,類的具體實現(反射) * @author wangguoli * */public class ConcreteFactoryA extends Factory<ConcreteProductA, ConcreteStoreA>{	public ConcreteFactoryA(){		init();	}	@Override	public void init() {		try {			product = ConcreteProductA.class.newInstance();			store = ConcreteStoreA.class.newInstance();		} catch (InstantiationException e) {			e.printStackTrace();		} catch (IllegalaccessException e) {			e.printStackTrace();		}	}	}/** * 生產A產品具體實現 * @author Administrator * */public class ConcreteProductA extends Product{	@Override	public void product() {		System.out.println("--------------START-------------------"+"/n"+"生產A產品!!!");	}}/** * 存放A產品,具體實現 * @author wangguoli * */public class ConcreteStoreA extends Store{	@Override	public void store() {		System.out.println("A產品,放到A倉庫"+"/n"+"----------------------------------");	}}/** * 測試 * @author wangguoli * */public class TestA {	public static void main(String[] args) {		Factory<ConcreteProductA, ConcreteStoreA> f = new ConcreteFactoryA();		f.product.product();		f.store.store();	}}

回憶:

寫到這里,想起了Builder模式,異曲同工 。

Builder build = new ConcreteBuilder.Builder().setA().setB().create();

同是應用于,生成復雜對象。

隱藏具體生產細節。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄龙县| 郁南县| 利辛县| 巍山| 资中县| 广州市| 乌拉特中旗| 张掖市| 西乌| 左云县| 洪江市| 临夏县| 嵩明县| 葵青区| 天水市| 永靖县| 延川县| 永善县| 阿拉善右旗| 仙游县| 天祝| 娱乐| 西丰县| 长沙市| 廉江市| 犍为县| 蕉岭县| 武城县| 丰顺县| 洛宁县| 黎城县| 罗甸县| 东方市| 通化市| 长治县| 鱼台县| 商洛市| 东乌| 吴川市| 阳谷县| 襄汾县|