一、工廠模式使我們是我們最常用的實例化對象模式,是用工廠方式代替new操作的一種模式。
通常我們創(chuàng)建類的實例對象的時候,以類A為例,A? a=new? A();采用new對象的操作。可是實際情況是,通常我們需要在實例對象的時候做一些其他的初始化操作,比如賦值,查詢數(shù)據(jù)等。如 A? a=new A(參數(shù))。
但是有時候,我們創(chuàng)建實例的初始化操作并不僅僅是賦值那么簡單,可能是很長一段代碼,一段操作。這樣代碼就很難看,而且很不安全,為了簡化操作,就引出了工廠模式。
二、面向對象的封裝和分派告訴我們,盡量將長的代碼分派“切割”成每段,將每段在“封裝”起來(減少段和段之間耦合聯(lián)系性),這樣就會將風險分散,以后如果需要修改。只要更改每段,不會在發(fā)生牽一發(fā)而動全身的事情。
? 1、首先,我們需要將創(chuàng)建實例的工作和使用實例的工作進行分開,也就是說,讓創(chuàng)建實例所需要的大量初始化工作從構造函數(shù)中分離出來。這時候我們就需要我們的Factory工廠模式生成對象了。
public class Factory {
public static A creatA(int position) {
A a =null;
if (position ==1) {
a =new A1();
}else if (position ==2) {
a =new A2();
}
return a;
}
}
在程序中,需要使用A的實例的話,就可以直接調用
A a=Factory.creatA(2);