日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 工厂模式详解_java 工厂模式的实例详解

發布時間:2025/3/15 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 工厂模式详解_java 工厂模式的实例详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java 工廠模式的實例詳解

工廠方法中的“工廠”和我們平常理解的一樣:用于生產產品。

而客戶是要和產品打交道,所以工廠方法模式的意義在于把客戶和產品分開,達到解耦和更靈活的目的。

一般我們有一個產品的抽象類,然后有幾個具體的產品,如下:

//抽象產品角色

public interface Product{

void product();

}

//具體產品1

public class Pro1 implements Product{

@Override

public void product() {

System.out.println("產品1");

}

}

//具體產品2

public class Pro2 implements Product{

@Override

public void product() {

System.out.println("產品2");

}

}

接著客戶要購買產品,他不直接和產品接觸,而是使用工廠,所以我們有一個工廠:

public class Factory {

public static Product buy(type) {

switch (type) {

case 1:

return new Pro1();

case 2:

return new Pro2();

default:

break;

}

return null;

}

}

客戶通過Factory .buy(type);即可購買到自己想要的產品。

————— 這就是 簡單工廠模式,又稱為 靜態工廠方法模式。

如果新增了一款產品,我們多寫一個產品類Pro3就可以了,但在工廠上我們要添加新的代碼才能生產,這顯然不符合“開閉原則(對擴展開放;對修改封閉)”,所以我們把工廠抽象,添加具體的工廠類,由客戶選擇某一個工廠,如下:

//抽象工廠

public interface Factory {

Product buy();

}

//具體工廠1

public class Factory1 implements Factory {

@Override

public Product buy() {

return new Pro1();

}

}

//具體工廠2

public class Factory2 implements Factory {

@Override

public Product buy() {

return new Pro2();

}

}

當新增了一款產品,我們多創建一個具體的工廠來生產就可以了。但是當產品種類非常多時,會出現大量的與之對應的工廠對象,這并不是我們所希望的。

——— 這就是 工廠方法模式

當產品出現多個抽象時,我們可能會有多個產品接口,這個場景就成了我們所說的

——- 抽象工廠模式

總結:

無論是簡單工廠模式,工廠方法模式,還是抽象工廠模式,他們都屬于工廠模式,在形式和特點上也是極為相似的,他們的最終目的都是為了解耦。在使用時,我們不必去在意這個模式到底工廠方法模式還是抽象工廠模式,因為他們之間的演變常常是令人琢磨不透的。經常你會發現,明明使用的工廠方法模式,當新需求來臨,稍加修改,加入了一個新方法后,由于類中的產品構成了不同等級結構中的產品族,它就變成抽象工廠模式了;而對于抽象工廠模式,當減少一個方法使的提供的產品不再構成產品族之后,它就演變成了工廠方法模式。 所以,在使用工廠模式時,只需要關心降低耦合度的目的是否達到了。

以上就是java 工廠模式的實例詳解,如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

總結

以上是生活随笔為你收集整理的java 工厂模式详解_java 工厂模式的实例详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。