国产探花免费观看_亚洲丰满少妇自慰呻吟_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();

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

隱藏具體生產細節。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 额尔古纳市| 呈贡县| 高雄市| 福泉市| 南丹县| 长顺县| 方城县| 滨海县| 广河县| 兴和县| 巴马| 卢氏县| 芦山县| 柞水县| 鄯善县| 平凉市| 城固县| 仁怀市| 三门县| 兴城市| 广安市| 铁力市| 马关县| 吉木萨尔县| 轮台县| 宁晋县| 安达市| 化州市| 滦平县| 沿河| 新野县| 同江市| 东光县| 白水县| 靖边县| 阜宁县| 临邑县| 宜阳县| 喀喇沁旗| 江津市| 阿城市|