工廠模式:屬於建立型模式。同我們生活中的廠家很相似。我們並不自己製造(new)產品,而是依靠廠家製造,我們只是拿來使用。簡單的說就是讓工廠
根據我們的需求給我們new乙個物件。
工廠模式又分為工廠方法模式和抽象工廠模式。 工廠方法模式又分為:普通工廠方法,靜態工廠方法.
package com.pattern.build.facotry.******;
/** * 水果介面
* @author chuer
* @date 2014-7-24 下午6:15:44
* @version v1.0
*/public inte***ce fruit
package com.pattern.build.facotry.******;
/** * 蘋果
* @author chuer
* @date 2014-7-24 下午6:16:08
* @version v1.0
*/ @override
public void name()
}
package com.pattern.build.facotry.******;
/** * 橘子
* @author chuer
* @date 2014-7-24 下午6:16:19
* @version v1.0
*/public class orange implements fruit
}
package com.pattern.build.facotry.******;
public class fruitfactory
private static fruitfactory factory = new fruitfactory();
public static fruitfactory getinstance()
//普通工廠方法模式:
/*** 根據水果名稱 例項化乙個水果物件
* @param name
* @return
*/public fruit createfruit(string name)else if(name.equals("orange"))
return fruit;
} /**
* 建立蘋果
* @return
*/ }
/*** 建立橘子
* @return
*/public fruit createorange()
//----------------------------分割線-----------------------------------
//靜態工廠方法模式
public static fruit create_fruit(string name)else if(name.equals("orange"))
return fruit; }
/*** 建立蘋果
* @return
*/ }
/*** 建立橘子
* @return
*/public static fruit create_orange()
}
package com.pattern.build.facotry.******;
public class client
}
通過**我們可以看出每種工廠方法模式都有兩種寫法,其中一種需要我們傳遞乙個標識來確定要建立那種產品,而另一種不需要。
也就是一種是單方法一種是多方法。
優點就是簡單易用。但是同樣優點也是它的缺點 :當我們要新加一種叫做香蕉的水果時,我們必須修改工廠類。對我們後期維護增加
了一點負擔。
抽象工廠模式可以擬補這一缺點。
package com.pattern.build.facotry.abs;
import com.pattern.build.facotry.******.fruit;
public inte***ce abstractfactory
package com.pattern.build.facotry.abs;
import com.pattern.build.facotry.******.fruit;
@override
public fruit crearfruit()
}
package com.pattern.build.facotry.abs;
import com.pattern.build.facotry.******.fruit;
import com.pattern.build.facotry.******.orange;
public class orangefactory implements abstractfactory
}
看到抽象工廠模式的**,我們看到確實如果要增加一種水果的話,不用修改原來以後的工廠類,而是重新建立乙個類。但是如果存在很多的
水果那麼就會出現很多的工廠類。
總之,工廠方法模式和抽象工廠模式各有優勢。可以根據自己的真實情況,選擇使用。
Java設計模式2 工廠模式
1 為什麼要使用工廠模式?在物件導向程式設計中,最通常的方法是乙個new操作符產生乙個物件例項,new操作符就是用來構造物件例項的。但是在一些情況下,new操作符直接生成物件會帶來一些問題。許多態別物件的創造需要一系列的步驟 你可能需要計算或取得物件的初始設定 選擇生成哪個子物件例項 或在生成你需要...
java設計模式 (2)工廠模式
工廠模式就是自己不去例項化物件,而使用物件工廠去例項化物件,大致分3種 簡單工廠模式 工廠模式 抽象工廠模式 先定義幾個類 person類,人這個類是個父類,而人分很多種人,這裡舉例子有student類和teacher類繼承了person類。簡單工廠模式 public class personfac...
java設計模式之工廠模式
工廠模式是一種經常被使用到的模式,根據工廠模式實現的類可以根據提供的資料生成一組類中某乙個類的例項,通常這一組類有乙個公共的抽象父類或者是介面並且實現了相同的方法,但是這些方法針對不同的資料進行了不同的操作。首先需要定義乙個父類或者介面,該類的子類通過不同的方法實現了父類中的方法。然後需要定義乙個工...