一个公司建设网站,沧州网站建设刘磊,中企动力总部在哪,手机 互动网站案例为什么需要工厂模式#xff0c;其作用什么#xff1f;如何实现#xff0c;代码演示解析优缺点。Q1:为什么需要工厂模式#xff1f;工厂模式的作用(优点)是什么#xff1f;
解耦。把对象的创建和使用的过程分开。就是Class A 想调用 Class B #xff0c;那么A只是调用B的…
为什么需要工厂模式其作用什么如何实现代码演示解析优缺点。Q1:为什么需要工厂模式工厂模式的作用(优点)是什么
解耦。把对象的创建和使用的过程分开。就是Class A 想调用 Class B 那么A只是调用B的方法不需要管B的实例化或者不感知B如何实例化创建的工作交给工厂类。代码复用。如果创建对象B的过程需要一定的代码量而且很多地方都要用到那么就会有很多的重复代码。把创建对象B的代码放到工厂里统一管理。既减少重复代码也方便以后对B的创建过程的修改和维护。符合迪米特法则和单一职责使用者只需要知道如何使用产品以及负责如何用产品无须感知创建的逻辑。Q2: 有哪些工厂模式如何实现
一般有三种。简单工厂模式工厂方法模式抽象工厂模式后两者时GOF23种设计模式中的。
简单工厂模式
定义创建任务简单一个工厂干所有的活。
代码演示 类图 优点逻辑简单。封装了创建逻辑将创建和使用解耦。
缺点维护成本高需要不断修改工厂内部实现不符合开闭原则。
工厂方法模式
定义简单工厂升级版。对工厂开始动刀子。定义工厂接口制定规则但具体实现下沉到实现体去控制。
代码演示
类图变动 具体代码 优点相比简单工厂利于扩展和维护。比如当新增一种车时只需要对应创建具体产品类和负责生产新品种车的具体工厂即可。符合“开闭原则”便于扩展。
缺点具有一定的局限性只能生产出一种产品由接口内部方法决定比如我要生成BMW牌子的某级别车就不直接支持。 抽象工厂模式
定义主要用于解决“一类产品”的创建问题比如各种牌子的B级车C级车。可以从自底向上抽象归纳的角度考虑。底层有多种抽象后可以归为一类的东西这里就是B级车C级车。也可以是篮球足球然后工厂需要负责创建不同牌子的篮球足球。也可以理解为抽象工厂的工厂接口比工厂方法的更多功能更强大。 区别
工厂方法模式只有一个抽象产品类而抽象工厂模式有多个。 工厂方法模式的具体工厂类只能创建一个具体产品类的实例而抽象工厂模式可以创建多个。 代码演示
类图 优点
抽象工厂模式隔离了具体类的生成将创建和使用解耦。利于扩展和维护。所有的具体工厂都实现了抽象工厂中定义的那些公共接口只需改变具体工厂的实例就可以在某种程度上改变整个软件系统的行为。当一个产品族中的多个对象被设计成一起工作时它能够保证客户端始终只使用同一个产品族中的对象。
增加新的产品族很方便无须修改已有系统符合“开闭原则”。缺点增加新的产品等级结构麻烦需要对原有系统进行较大的修改甚至需要修改抽象层代码这显然会带来较大的不便违背了“开闭原则”。 ------------------------------------------ 最后 -------------------------------------------------------------------------
源码公 众 号 搜“程序员一棵树” 回复 “设计模式” 即可获取源码链接。 更多 视频 内容请 1. B 站 搜索关注 “程序员一棵树” 2. 抖 音 搜索关注 “程序员一棵树” 3. 公 众 号 搜索关注 “程序员一棵树” ———————————————— 版权声明本文为CSDN博主「ying105525」的原创文章遵循CC 4.0 BY-SA版权协议转载请附上原文出处链接及本声明。 原文链接https://blog.csdn.net/u010867670/article/details/128942659