工廠方法

定義:定義一個建立對象的接口,由子類決定要實例化的對象類型,工廠方法讓類的實例化推遲到子類中java

 

要點:框架

1.工廠模式讓實現和使用解耦ide

2.工廠方法是繼承於超類,實現超類中抽象建立對象的接口,不用於簡單工廠,使用組合方式來達到解耦的目的工具

3.工廠方法更像是一種框架,而簡單工廠只是一種簡單的實現方式,像一種工具測試

4.工廠方法並非真正運行時決定建立的對象,而是選擇的子類決定了建立的對象,一樣能夠用多個簡單工廠的方式來達到這樣的目的。可是簡單工廠違反了OO設計原則「依賴抽象,不要依賴具體類」設計

 

實現:code

package com.jv.designpatterns.factory.factorymethod;

//定義匹薩的超類
public interface Pizza {

}
package com.jv.designpatterns.factory.factorymethod;

public class PizzaA implements Pizza {

}
package com.jv.designpatterns.factory.factorymethod;

public class PizzaB implements Pizza {

}
package com.jv.designpatterns.factory.factorymethod;

public abstract class PizzaStore {
	
	//定義抽象建立對象實例方法,交有子類決定建立的對象類型
	public abstract Pizza createPizza();
	
	public void orderPizza() {
		Pizza p = createPizza();
		//其餘方法
	}
}
package com.jv.designpatterns.factory.factorymethod;

public class PizzaStoreA extends PizzaStore {

	//子類實現抽象父類中的 建立匹薩對象的抽象方法,由子類決定要建立的對象究竟是誰
	@Override
	public Pizza createPizza() {
		return new PizzaA();
	}

}
package com.jv.designpatterns.factory.factorymethod;

public class PizzaStoreB extends PizzaStore {

	//子類實現抽象父類中的 建立匹薩對象的抽象方法,由子類決定要建立的對象究竟是誰
	@Override
	public Pizza createPizza() {
		return new PizzaB();
	}

}

沒有更詳細的模擬場景寫測試代碼,感興趣的同窗能夠嘗試着添加代碼來完成測試,動動手,動動腦對象

相關文章
相關標籤/搜索