
设计模式-02.工厂方法模式
发布日期:2021-05-20 05:12:38
浏览次数:25
分类:精选文章
本文共 594 字,大约阅读时间需要 1 分钟。
工厂方法模式与简单工厂模式的区别
在面向对象编程的设计模式中,简单工厂模式和工厂方法模式两者都用于隔离对象的创建逻辑,防止客户端代码直接依赖于具体的实现类。但它们实现方式和优点有所不同,以下是详细的分析:
简单工厂模式
简单工厂模式通过一个工厂类中的逻辑判断,动态创建客户端需要的对象类型。工厂类内部包含所有可能的创建逻辑,客户端只需要选择一个工厂类,使其创建所需对象。优点如下:
- 客户端依赖小:客户端代码只需要调用工厂类的方法,不直接依赖具体实现类。
- 逻辑集中:工厂类集中管理所有创建逻辑,方便维护和管理,但会让单一类变得臃肿。
不过,当需要扩展或修改工厂类的逻辑时,可能会违反开发-封闭原则,因为这就需要修改已经被客户端依赖的工厂类,导致系统维护性差。
工厂方法模式
工厂方法模式通过定义一个工厂接口,使得工厂实现类(由子类决定)负责对象的创建。工厂方法的关键在于将对象的实例化延迟到子类,使得开闭原则更易遵守。其优点包括:
- 客户端依赖小:客户端只需选择实现工厂接口的具体工厂类进行操作,调用方法即可获得对象。
- 扩展灵活:新增功能只需新增工厂类,维护性强,且不影响现有的客户端代码。
总结
简单工厂模式适用于在创建对象时需要一次性的逻辑判断,并且工厂类的结构较为集中。而工厂方法模式则更适合需要灵活扩展对象创建方式,同时保持客户端代码独立。理解两者区别有助于更好地选择适合的设计模式。
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年04月22日 10时51分43秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
MVVM_Template
2019-03-14
网络+图片加载框架(英文版)
2019-03-14
Python imageio方法示例
2019-03-14
Possible missing firmware
2019-03-14
JAVA BigInteger和BigDecimal类常用方式
2019-03-14
深度学习框架 各种模型下载集合 -- models list
2019-03-14
six.move 的作用
2019-03-14
机器学习全教程
2019-03-14
idea在连接mysql数据库时区错误
2019-03-14
2021-05-14
2019-03-14
Kali-linux:nmap命令
2019-03-14
s3c2440 ads程序移植到keil中(一) 初步完成
2019-03-14
工程经济—建设工程定额
2019-03-14
工程经济—工程量清单编制
2019-03-14
1Z204050、施工质量不合格的处理
2019-03-14
【字节网盘】九款超好看不同页面404源码
2019-03-14
两款404页面自动跳转源码html
2019-03-14
二改广告横幅在线制作源码 美化版
2019-03-14
服饰贴图定制小程序V1.2.4安装更新一体包+小程序前端
2019-03-14