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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

设计模式-工厂方法的应用场景及Java中对工厂方法的应用

發布時間:2023/12/16 java 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设计模式-工厂方法的应用场景及Java中对工厂方法的应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 1.什么是工廠方法模式
  • 2. 工廠方法模式優/缺點和使用場景
    • 2.1 工廠方法模式優點
    • 2.2 工廠方法模式缺點
    • 2.3 工廠方法模式使用場景
  • 3. 工廠方法模式簡單案例
    • 3.1 創建汽車產品接口
    • 3.2 創建AoDi汽車產品類
    • 3.3 創建BaoMa汽車產品類
    • 3.4 創建汽車工廠
    • 3.5 創建寶馬汽車工廠
    • 3.6 創建奧迪汽車工廠
    • 3.7 創建消費者
  • 4. 工廠方法模式在Java中的應用
    • 4.1 org.slf4j.LoggerFactory.getLogger(簡單工廠)
    • 4.2 BeanFactory

1.什么是工廠方法模式

  • 工廠方法模式是一種創建型設計模式, 其在父類中提供一個創建對象的方法, 允許子類決定實例化對象的類型。
  • 定義工廠方法模式(Fatory Method Pattern)是指定義一個創建對象的接口,但讓實現這個接口的類來決定實例化哪個類,工廠方法讓類的實例化推遲到子類中進行

2. 工廠方法模式優/缺點和使用場景

2.1 工廠方法模式優點

工廠方法模式是為了克服簡單工廠模式的缺點(主要是為了滿足OCP)而設計出來的。簡單工廠模式的工廠類隨著產品類的增加需要增加很多方法(或代碼),而工廠方法模式每個具體工廠類只完成單一任務,代碼簡潔。工廠方法模式完全滿足OCP,即它有非常良好的擴展性。

2.2 工廠方法模式缺點

每新增一個具體的產品類 都要進行一定程度上的修改,可能會修改對應的工廠類,當同時需要修改多個產品類的時候,對工廠類的修改會變得相當麻煩。會增加工作量。

2.3 工廠方法模式使用場景

  • 一個類不知道它所需要的對象類,在工廠方法模式中,客戶端不需要指定具體產品類的類名,只需要知道所對應的工廠即可,具體的產品對象由具體的工廠類創建客戶端只需要知道創建具體產品的工廠即可

3. 工廠方法模式簡單案例

3.1 創建汽車產品接口

package com.san.manage.modular.test.factory;/*** @ClassName Car* @Description TODO* @Author ZhangSan_Plus* @Date 2022/1/20 14:25* @Version 1.0**/ public interface Car {void name(); }

3.2 創建AoDi汽車產品類

package com.san.manage.modular.test.factory;/*** @ClassName AoDi* @Description TODO* @Author ZhangSan_Plus* @Date 2022/1/20 14:27* @Version 1.0**/ public class AoDi implements Car {@Overridepublic void name() {System.out.println("奧迪汽車");} }

3.3 創建BaoMa汽車產品類

package com.san.manage.modular.test.factory;/*** @ClassName BaoMa* @Description TODO* @Author ZhangSan_Plus* @Date 2022/1/20 14:28* @Version 1.0**/ public class BaoMa implements Car {@Overridepublic void name() {System.out.println("寶馬汽車");} }

3.4 創建汽車工廠

package com.san.manage.modular.test.factory;/*** @ClassName CarFactory* @Description TODO* @Author ZhangSan_Plus* @Date 2022/1/20 9:47* @Version 1.0**/ public interface CarFactory {Car createCar(); }

3.5 創建寶馬汽車工廠

package com.san.manage.modular.test.factory;/*** @ClassName BaoMaCarFactory* @Description TODO* @Author ZhangSan_Plus* @Date 2022/1/20 9:49* @Version 1.0**/ public class BaoMaCarFactory implements CarFactory {@Overridepublic Car createCar() {Car car = new BaoMa();System.out.println("寶馬騎車生產");return car;} }

3.6 創建奧迪汽車工廠

package com.san.manage.modular.test.factory;/*** @ClassName AoDiCarFactory* @Description TODO* @Author ZhangSan_Plus* @Date 2022/1/20 9:48* @Version 1.0**/ public class AoDiCarFactory implements CarFactory {@Overridepublic Car createCar() {Car car = new AoDi();System.out.println("奧迪汽車完成生成");return car;} }

3.7 創建消費者

package com.san.manage.modular.test.factory;/*** @ClassName Consumer* @Description TODO* @Author ZhangSan_Plus* @Date 2022/1/20 9:50* @Version 1.0**/ public class Consumer {public static void main(String[] args) {Car car = new AoDiCarFactory().createCar();Car car2 = new BaoMaCarFactory().createCar();car.name();car2.name();} }

4. 工廠方法模式在Java中的應用

4.1 org.slf4j.LoggerFactory.getLogger(簡單工廠)


4.2 BeanFactory

  • org.springframework.beans.factory.BeanFactory(version:5.0.5)


總結

以上是生活随笔為你收集整理的设计模式-工厂方法的应用场景及Java中对工厂方法的应用的全部內容,希望文章能夠幫你解決所遇到的問題。

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