设计模式-工厂方法的应用场景及Java中对工厂方法的应用
生活随笔
收集整理的這篇文章主要介紹了
设计模式-工厂方法的应用场景及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中对工厂方法的应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何保证投票公平_关于公平合理、简便省时
- 下一篇: 行情基础知识概览