设计模式(2)——工厂方法
记录对工厂方法的理解:
工厂方法的作用在于封装产品的实现细节及设置。比如手机工厂,如果可以设置手机的操作系统应该在工厂方法中提前设定然后通过工厂方法获取 PhoneFactory.getPhone();,
而不是通过客户端 new Phone(); phone.setOS("xxx"); 用户端只想要得到一部可以直接使用的手机(不需要任何无关其他操作)。 不同的手机厂商通过遵循同一个手机工厂接口生产自家的产品。
如果产品有许许多多的设置项,那么由工厂方法统一进行设置,从工厂方法获取对象会更好,如果需要改动的话只需要在工厂方法中修改即可,便于管理。
对抽象工厂的理解:
抽象工厂是管理工厂的工厂类。工厂方法是特属抽象工厂(只有一个产品)。
如果抽象工厂定义了智能家居工厂,包含手机、电饭煲、智能音箱 ......等产品的工厂,不同的厂商根据抽象工厂的标准实现各个产品的工厂,就称为抽象工厂。抽象工厂需要所有的产品基本确定,不会有过多的增加或减少,因为一旦抽象工厂增加了,那么所有实现了抽象工厂的工厂都需要修改。所以抽象工厂是对一系列稳定的产品的工厂进行管理。
使用xml文件配置spring的时候可能会需要很多 xxxFactory,这些bean都有很多的设置项,通过在xml文件中设置可以生成符合要求的bean而不需要在bean被使用的地方修改(便于管理,修改力度小),通过修改value可以切换不同厂家的工厂(多态的好处,抽象的好处 面向接口编程)。
简单工厂方法适用于,返回的对象类型需要根据客户端的输入实时进行变化,而不是全局进行替换。
欺骗自己最简单,欺骗自己最困难。
安慰自己最简单,安慰自己最困难。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】