工廠模式在項目開發中是使用效率非常高的,意思就是說定義一個用於創建對象的接口,讓子類去決定實例化哪一個類。這就是一個工廠類的示意圖
接著來一個簡單的例子:
如上圖所示,我們首先定義我們的產品抽象類接口,也可以是抽象類:
--------------------------------------分割線 --------------------------------------
編寫高質量代碼 改善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