设计模式之:三种工厂模式的对比SimpleFactoryPattern、FactoryMethodPattern、AbstractFactoryPattern
工厂模式对比: |
简单工厂 SimpleFactoryPattern |
工厂方法 FactoryMethodPattern |
抽象工厂 AbstractFactoryPattern |
工厂数量 |
一个工厂 |
多个工厂 |
多个工厂 |
工厂数量计算 |
1 |
工厂数=产品数 |
工厂数=产品系列数 |
单个工厂创建产品数 |
所有产品 |
一个产品 |
一个产品系列 |
创建产品的方式 |
工厂通过条件语句,决定生产哪种产品 |
创建不同的工厂,从而生产不同的产品 |
创建不同的工厂,从而生产不同的产品系列 |
扩展产品难易程度 |
需要修改工厂代码 |
不用修改工厂代码 |
不用修改工厂代码 |
扩展产品实现方式 |
增加产品类,修改工厂代码 |
增加产品类和工厂类 |
增加产品系列和工厂类 |
是否使用接口 |
否 |
是 |
是 |
理解的难易程度 |
容易 |
一般 |
较难 |
是否实现解耦 |
是 |
是 |
是 |
是否符合依赖倒置原则 |
否 |
是 |
是 |
是否符合开闭原则 |
否 |
是 |
是 |
是否符合里氏替换原则 |
产品符合,工厂不符合 |
是 |
是 |
是否符合迪米特法则 |
是 |
是 |
是 |
是否符合单一职责原则 |
否 |
是 |
是 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律