news 2026/5/23 1:32:11

简单工厂模式

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
简单工厂模式

多态在简单工厂模式中的应用

多态允许不同类的对象对同一消息做出响应,通过父类引用指向子类对象实现动态绑定。简单工厂模式利用多态将对象的创建与使用分离,提升代码灵活性和可维护性。

代码示例分析

以下代码展示了简单工厂模式中多态的核心实现:

public class PetStore { public static Animal getAnimal(String petName) { Animal an = null; if ("猫".equals(petName)) { an = new Cat(); } if ("狗".equals(petName)) { an = new Dog(); } if ("猪".equals(petName)) { an = new Pig(); } return an; } }

多态体现的关键点

工厂方法返回类型为父类Animal,实际返回的是具体子类(Cat/Dog/Pig)的实例。客户端通过统一接口操作不同对象:

Animal animal = PetStore.getAnimal("猪"); girl.play(animal); // 无需关心具体动物类型

典型应用场景

  • 对象创建逻辑集中化:将分支判断逻辑封装在工厂中,避免客户端代码冗余
  • 系统扩展性:新增动物类型只需修改工厂类,客户端代码无需变动
  • 接口统一:所有动物对象通过父类Animal的接口被访问,实现行为多态

设计优势

  • 降低耦合度:客户端与具体实现类解耦
  • 符合开闭原则:对扩展开放,对修改关闭
  • 类型安全:编译时检查替代运行时错误

注意事项

  • 工厂类通常设计为静态方法或单例模式
  • 当产品种类过多时,考虑使用工厂方法模式替代
  • 字符串参数可替换为枚举类型提升安全性

这种模式在需要动态创建相似对象的场景中广泛应用,如支付系统、日志记录器等需要灵活切换实现的场合。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/23 1:32:14

微信社交关系优化:用WechatRealFriends识别并管理单向好友

微信社交关系优化:用WechatRealFriends识别并管理单向好友 【免费下载链接】WechatRealFriends 微信好友关系一键检测,基于微信ipad协议,看看有没有朋友偷偷删掉或者拉黑你 项目地址: https://gitcode.com/gh_mirrors/we/WechatRealFriends…

作者头像 李华
网站建设 2026/5/23 1:32:11

双容水箱液位控制:从PLC梯形图到上位机组态

双容水箱液位控制系统设计 双容水箱液位控制系统设计 基于S7-200 PLC和组态王组态双容水箱液位控制系统设计工业现场的双容水箱控制堪称经典案例,咱们今天用西门子S7-200 PLC和组态王来实战一把。这个系统最有趣的地方在于两个水箱之间的耦合效应——上水箱的出水就…

作者头像 李华
网站建设 2026/5/23 1:32:12

星耀启新预拌砂浆 VS 普通砂浆:5 大痛点全破解,省钱省心不踩坑

干工程、做装修的老板们注意了!别再被现场搅拌的普通砂浆坑惨了!今天就实打实跟大家唠唠,普通砂浆藏着多少隐形坑,为啥星耀启新预拌砂浆,才是真正省心、省钱、保品质的优选。先说说普通砂浆的那些致命痛点,…

作者头像 李华
网站建设 2026/5/23 1:32:10

注意力机制:AI 也会“走神“和“专注“——信息选择的智慧

注意力机制:AI 也会"走神"和"专注"——信息选择的智慧(Version B) 📚 《从零到一造大脑:AI架构入门之旅》专栏 专栏定位:面向中学生、大学生和 AI 初学者的科普专栏,用大白话和生活化比喻带你从零理解人工智能 本系列共 42 篇,分为八大模块: 📖…

作者头像 李华
网站建设 2026/5/23 1:32:25

终极指南:如何免费解锁Cursor Pro功能,彻底解决API限制问题

终极指南:如何免费解锁Cursor Pro功能,彻底解决API限制问题 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve …

作者头像 李华