歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Java 工廠模式變形的多種應用

Java 工廠模式變形的多種應用

日期:2017/3/1 9:42:07   编辑:Linux編程

工廠模式在項目開發中是使用效率非常高的,意思就是說定義一個用於創建對象的接口,讓子類去決定實例化哪一個類。這就是一個工廠類的示意圖

接著來一個簡單的例子:

如上圖所示,我們首先定義我們的產品抽象類接口,也可以是抽象類:

--------------------------------------分割線 --------------------------------------

編寫高質量代碼 改善Java程序的151個建議 PDF高清完整版 http://www.linuxidc.com/Linux/2014-06/103388.htm

Java 8簡明教程 http://www.linuxidc.com/Linux/2014-03/98754.htm

Java對象初始化順序的簡單驗證 http://www.linuxidc.com/Linux/2014-02/96220.htm

Java對象值傳遞和對象傳遞的總結 http://www.linuxidc.com/Linux/2012-12/76692.htm

Java對象序列化ObjectOutputStream和ObjectInputStream示例 http://www.linuxidc.com/Linux/2012-08/68360.htm

--------------------------------------分割線 --------------------------------------

package factory;

public abstract class PlatForm {
public void search(){
System.out.println("你搜索的結果是。。。。。。");
}

public abstract void music();
}

下面是一些實現類

package factory;

public class BaiduProduct extends PlatForm{

@Override
public void music() {
System.out.println("baidu music");
}

}

package factory;

public class Qihu360Product extends PlatForm{

@Override
public void music() {
System.out.println("360 music");
}

}

package factory;

public class SogouProduct extends PlatForm{

@Override
public void music() {
System.out.println("sogou music");
}

}

三個實現類已經完成,下面我們要來一個工廠的抽象類

package factory;

public abstract class Creator {
/**
* 創建一個產品對象,其中T 可以為 String Enum Class等 參數可以自己設置
* @param c
* @return
*/
public abstract <T extends PlatForm> T createProduct(Class<T> c);
}

更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2014-07/104317p2.htm

Copyright © Linux教程網 All Rights Reserved