免费无码毛片-免费无码视频-免费无码一级黄片-免费无码一级特级-免费无码片-免费无码影片-免费无码中文-免费午夜剧场-免费午夜理论-免费午夜视频-免费性爱av-免费性爱视频

當前位置: 首頁 > 產品大全 > 23種設計模式之工廠方法模式 靈活創建對象的藝術

23種設計模式之工廠方法模式 靈活創建對象的藝術

23種設計模式之工廠方法模式 靈活創建對象的藝術

工廠方法模式(Factory Method Pattern)是一種常用的創建型設計模式,它通過定義一個創建對象的接口,將具體對象的創建延遲到子類中實現,從而實現了對象的創建與使用的解耦。

一、模式定義與核心思想

工廠方法模式的核心思想是:定義一個用于創建對象的接口,但讓子類決定實例化哪一個類。這種模式使一個類的實例化延遲到其子類,從而在不修改客戶端代碼的情況下,通過不同的子類創建不同的對象。

二、模式結構

  1. 抽象產品(Product):定義了產品的接口,是工廠方法創建的所有對象的超類型
  2. 具體產品(ConcreteProduct):實現了抽象產品接口的具體產品類
  3. 抽象工廠(Creator):聲明了工廠方法(返回抽象產品類型)的抽象類
  4. 具體工廠(ConcreteCreator):實現了工廠方法,返回具體產品的實例

三、應用場景

工廠方法模式適用于以下場景:

  • 當一個類不知道它所需要的對象的類時
  • 當一個類希望由其子類來指定它所創建的對象時
  • 當類將創建對象的職責委托給多個輔助子類中的某一個,并且希望將哪一個輔助子類是代理者這一信息局部化時

四、優勢與局限

優勢
1. 良好的封裝性:創建對象的代碼被封裝在具體工廠中
2. 可擴展性:增加新的產品類時,只需增加相應的具體工廠類,無需修改現有代碼
3. 客戶端與具體產品的解耦:客戶端只依賴于抽象接口,不依賴于具體實現

局限
1. 類的數量增多:每增加一種產品,就需要增加一個具體工廠類
2. 增加了系統的復雜性

五、模型設計示例

以下是一個簡單的工廠方法模式模型設計示例:

`java // 抽象產品 interface Vehicle { void drive(); }

// 具體產品:汽車
class Car implements Vehicle {
@Override
public void drive() {
System.out.println("駕駛汽車");
}
}

// 具體產品:自行車
class Bicycle implements Vehicle {
@Override
public void drive() {
System.out.println("騎自行車");
}
}

// 抽象工廠
abstract class VehicleFactory {
// 工廠方法
public abstract Vehicle createVehicle();

// 其他業務方法
public void deliver() {
Vehicle vehicle = createVehicle();
vehicle.drive();
}
}

// 具體工廠:汽車工廠
class CarFactory extends VehicleFactory {
@Override
public Vehicle createVehicle() {
return new Car();
}
}

// 具體工廠:自行車工廠
class BicycleFactory extends VehicleFactory {
@Override
public Vehicle createVehicle() {
return new Bicycle();
}
}

// 客戶端代碼
public class Client {
public static void main(String[] args) {
VehicleFactory factory = new CarFactory();
factory.deliver(); // 輸出:駕駛汽車

factory = new BicycleFactory();
factory.deliver(); // 輸出:騎自行車
}
}
`

六、與其他模式的關系

  • 與簡單工廠模式:工廠方法模式是簡單工廠模式的進一步抽象,解決了簡單工廠模式違反開閉原則的問題
  • 與抽象工廠模式:工廠方法模式創建單一產品,而抽象工廠模式創建產品族
  • 與模板方法模式:工廠方法模式通常與模板方法模式結合使用,工廠方法本身可以看作是模板方法模式的一個特例

七、實際應用

在Java中,工廠方法模式廣泛應用于:

  • JDBC中的Connection對象的創建
  • Spring框架中的BeanFactory
  • Java集合框架中的Iterator工廠方法

##

工廠方法模式通過將對象的創建延遲到子類,實現了創建過程的靈活性和擴展性。它是面向對象設計中“針對接口編程,而不是針對實現編程”原則的典型體現。掌握工廠方法模式,能夠幫助開發者設計出更加靈活、可維護的軟件系統。

如若轉載,請注明出處:http://m.syzdy.com/product/76.html

更新時間:2026-08-26 00:04:33

產品大全

Top 主站蜘蛛池模板: 超级黄色毛片网站 | 最新免费在线影院 | 欧美爱爱网址 | 青苹果影视 | 国产视频福利 | 宅福利导航 | 哦没第一页 | 国产91在线| 日本不卡一二一 | 国产精品国产原神 | 黄片免费看地址 | 91豆花永久网站 | 蜜桃91 | 国产精品视频三级 | 新五月综合 | 一区二线视频 | 午夜福利久久久 | 四虎影院色 | 免费看片软件 | 成人日韩在线 | 国产美女自在线 | 欧美女同电影 | 在线播放日韩中文 | 日本成人免费电影 | 碰操免费视频 | 爱豆在线看 | 黑色丝袜自慰喷水 | 国产精品欧美亚洲 | 女同另类| 日韩无码专区 | 91草莓| 国产免费自拍视频 | 吃瓜黑料自拍偷拍 | 青青草97| 中国人妖操女人 | 操我逼视频91 | 成人国产av精 | 亚洲不卡一二 | 亚洲成人动漫在线 | 门事件视频一二区 | 综合亚洲欧美日韩 |