工厂方法模式,抽象工厂模式

本文深入解析工厂模式的三种形式——简单工厂、工厂方法和抽象工厂,详细阐述了各模式的组成、优缺点及应用场景,并通过计算器类、BM业务代理工厂和空调产品族等例子进行说明。
工厂模式:为创建对象提供一种灵活的方式,将对象的具体过程封装隔离,客户不必关心构造对象的细节和复杂过程。
分类:简单工厂模式、工厂方法模式、抽象工厂模式   (三种模式逐渐增加抽象层次)
简单工厂模式组成:
    1:工厂类角色:内部含有一定的逻辑判断来创建对象,一般为if...else...分之或者switch...case分之。如下图的Creator。
    2:抽象产品角色:定义要生产对象的抽象概念,是具体对象类的父类或者接口。入下图的Product
    3:具体产品角色:工厂类所创建的产品角色对象。
(个人开发中的例子:计算器类)

工厂方法模式:
    1:抽象工厂角色:相比于简单工程模式,抽象了工厂角色。具体工厂必须角色必须实现或继承抽象工厂
    2:具体工厂角色:包含逻辑判断创建具体产品对象。
    3:抽象产品角色:产品角色的模型,具体产品角色的父类或者接口。
    4:具体产品角色:具体工厂角色创建的产品对象。
    ConcreteProduct1由ConcreteCreator1创建, ConcreteProduct2由ConcreteCreator2创建,每增加一个产品相对应的要为之创建一个创建产品的工厂。
    相比于简单工厂客户类增加一个具体产品就要修改工厂内部结构违反开闭—原则。
优点:工厂方法则可以避免该现象,Client维护一个Creator的引用,当新产品引入时只要重新设置Creator的引用。
    缺点:动态增加,类多,维护难度大。

(个人开发中的例子:BM的业务代理工厂,负责new出不同的业务代理实例)

抽象工厂模式: 组成和工厂方法模式相同。
产品族:位于不同产品等级结构中,功能相关联的产品组成的家族。空调位于不同的车系统中,但是不管什么类型的空调,他们的功能相同。
抽象工厂模式满足必须的条件:
    1:系统中有多个产品族,而系统一次只可能消费其中一族产品。
    2:同属于同一个产品族的产品一起使用时。
    3:除非非常确信抽象工厂由多个确定的产品族组成,才使用抽象工厂模式。当有一个产品族改变时,必须替换掉整个抽象工厂。
    从条件上很难理解所要表达的意思,从下图看很清晰, 相比于工厂方法模式,相当于组合了不同产品组抽象工厂角色,抽象工厂模式增加了抽象工厂角色创建对象的接口,两个接口创建不同的产品族产品。
抽象工厂模式层在实际应用开发过程中可以直接与客户类相融合。也就是说可以定义一个客户类然后继承多个产品族的接口(个人开发中的BMApp继承NewDomian接口和NewInterface接口)
factory.rar

本文纯属个人学习总结, 篇幅的大部分内容都来源于网络, 每个人的水平、层次、出发点不同,阅读者可能存在一定的误解,希望提出建议共同交流



下载方式:https://pan.quark.cn/s/a4b39357ea24 在纺织制造领域中,纱线的品质水平对最终制成品的整体质量具有决定性作用。 鉴于消费者对于产品规格和样式要求的不断变化,纺织制造工艺的执行过程日益呈现为一种更为复杂的操作体系,进而导致对纱线质量进行预测的任务变得更加困难。 在众多预测技术中,传统的预测手段在面对多变量间相互交织的复杂关系时,往往显得力不从心。 因此,智能计算技术在预测纱线质量的应用场景中逐渐占据核心地位,其中人工神经网络凭借其卓越的非线性映射特性以及自适应学习机制,成为了众多预测方法中的一种重要选择。 在智能计算技术的范畴内,粒子群优化算法(PSO)和反向传播神经网络(BP神经网络)是两种被广泛采用的技术方案。 粒子群优化算法是一种基于群体智能理念的优化技术,它通过模拟鸟类的群体觅食行为来寻求最优解,该算法因其操作简便、执行高效以及具备优秀的全局搜索性能,在函数优化、神经网络训练等多个领域得到了普遍应用。 反向传播神经网络则是一种由多层节点构成的前馈神经网络,它通过误差反向传播的机制来实现网络权重和阈值的动态调整,从而达成学习与预测的目标。 在实际操作层面,反向传播神经网络因其架构设计简洁、实现过程便捷,因此被广泛部署于各类预测和分类任务之中。 然而,该方法也存在一些固有的局限性,例如容易陷入局部最优状态、网络收敛过程缓慢等问题。 而粒子群优化算法在参与神经网络优化时,能够显著增强神经网络的全局搜索性能并提升收敛速度,有效规避神经网络陷入局部最优的困境。 将粒子群优化算法与反向传播神经网络相结合形成的PSO-BP神经网络,通过运用粒子群优化算法对反向传播神经网络的权值和阈值进行精细化调整,能够在预测纱线断裂强度方面,显著提升预测结果的...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值