歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Java工廠模型小結

Java工廠模型小結

日期:2017/3/1 9:54:16   编辑:Linux編程

今天看了一篇關於工廠模型的博文。感覺不錯,可謂感觸頗深,對工廠模型的理解有進一步。下面我也簡單介紹一下工廠模型。
工廠模型主要分為以下三種狀態:

(1).簡單工廠模型(SimpleFactory)
(2)工廠方法(Factory Method)
(3)抽象工廠(Abstract Factory)

1、簡單工廠模型:其實就是定義一個接口,不同的產品類實現這個接口,最後工廠類通過傳入的不同參數去生產不同的產品。這裡的核心就是工廠類。下面介紹一個小例子。
假設我們要生產手機和電腦該怎麼辦呢?
首先先定義一個產品Product接口
12 public interface Product {
}

要生產手機和電腦就得分別定義電腦類和手機類。
電腦類:
public class Computer implements Product{
public Computer(){
System.out.println("電腦被制造出來了");
}
}

手機類:
12345 public class Phone implements Product{
public Phone(){
System.out.println("電話被制造出來了");
}
}

這個時候呢就需要工廠出面了。根據傳入的參數不同,就代表了不同的需求,生產不同的產品。
簡單工廠類:
public class SimpleFactory {
public static Product Factory(String productName)throws Exception{
if("phone".equals(productName)){
return new Phone();
}else if("computer".equals(productName)){
return new Computer();
}else{
throw new Exception("沒有改產品");
}
}
}

下面我們寫個測試類,看一下運行結果:
測試類:
public class TestSimpleFactory {
public static void main(String[] args) {
try{
SimpleFactory.Factory("computer");
SimpleFactory.Factory("phone");
}catch(Exception e){
e.printStackTrace();
}
}
}

測試結果為:
電腦被制造出來了
電話被制造出來了
這就是簡單工廠,但是簡單工廠尤其局限性。簡單工廠的核心就是工廠類。一旦工廠類失效,則整個程序就會失效。所以就有了工廠方法和抽象工廠。下面先介紹一下工廠方法。
2、工廠方法:簡單的說工廠方法就是給工廠定義了接口,通過多態的形式削弱了工廠的作用。
工廠的接口:定義了一個抽象方法。
public interface Factory {
public Product create();
}

和上面一樣也定義了一個產品接口:用於實現不同產品的生產。
產品接口:
12 public interface Product {
}

既然有了產品接口就生產不同的產品吧。
手機類:
public class Phone implements Product{
public Phone(){
System.out.println("電話被制造出來了");
}
}

電腦類:
public class Computer implements Product{
public Computer(){
System.out.println("電腦被制造出來了");
}
}

工廠方法的最主要特點就是定義了工廠接口,可以定義出專門生產電腦的工廠,也可以定義出專門生產手機的工廠等等。。。下面就定義工廠的實現類吧
電腦工廠類:專門生產電腦
public class ComputerFactory implements Factory {
public Product create() {
return new Computer();
}
}

手機工廠類:專門生產手機
public class PhoneFactory implements Factory{
public Product create() {
return new Phone();
}
}

下面我們寫一下工廠方法類:主要創建不同的工廠類,通過不同的工廠生產不同的產品。
工廠方法類:
public class FactoryMethod {
public static void main(String[] args) {
ComputerFactory cf = new ComputerFactory();
cf.create();
PhoneFactory pf = new PhoneFactory();
pf.create();
}
}

下面看一下運行結果:
電腦被制造出來了
電話被制造出來了
接下來介紹一下抽象工廠類。之後在總結一下三者的區別。

接下來請看第2頁精彩內容: http://www.linuxidc.com/Linux/2013-08/88646p2.htm

Copyright © Linux教程網 All Rights Reserved