设计模式学习(4)

14、抽象工厂模式

抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。


AbstractFactory(抽象工厂)

     抽象类,规定了该工厂可以生产的产品类,由子类实现具体产品类的工厂方法;

ConcreteFactoryA(具体工厂)

    继承自抽象工厂,实现抽象工厂提供的工厂方法以产生特定的产品;

ConcreteFactoryB(具体工厂)

   同ConcreteFactoryA;

AbstractProduct(抽象产品)

   抽象类,用于规定该类产品生产的具体步骤;

Product1(具体产品)

  继承自抽象产品,实现具体生产步骤;

Product2(具体产品)

  同Product1;

Client(应用场景)

  内部包含了抽象工厂的引用,在构造函数中将传入具体的工厂;

  内部包含了抽象产品类的引用,用于工厂生产具体产品的引用;

总结:抽象工厂模式与工厂模式都是用来创建对象的,但二者也有区别,工厂模式用来创建一类产品,只有一个工厂方法,子类通过实现该工厂方法决定生产的具体产品,而且通过对比类图可以发现,工厂方法将client部分省略,直接在父类里包含了产品抽象类,子类通过继承实现,也就是有多少种产品就有多少个子类;抽象工厂模式用来创建几类产品,有多个工厂方法来对应产生这些产品,子类也通过继承实现具体产品的生产,但抽象工厂里没有抽象产品类,抽象工厂最终要被包含在client中当做一个变量使用,也就是通过组合的方式实现产品的生产。

15、桥梁模式

桥梁模式将抽象与实现部分分离,使他们都可以独立变化。


Abstraction(抽象部分)

    抽象类,构造函数会出入一个Implementor的引用;

    含有一个operation()方法,其内部会调用Implementor的operationImp()方法来实现特定的功能;

RefineAbstraction(抽象部分子类)

    继承自Abstraction;

Implementor(实现部分)

    抽象类,含有operationImp()方法;

ConcreteImp(实现部分子类)

   继承自Implementor,实现了operationImp()方法;

总结:桥梁模式实现了桥梁两端的自由扩展,也就是定义里抽象与实现的分离后可以独立扩展。感觉桥梁模式是策略模式的扩展,策略模式只能有一端可以自由变化,而桥梁模式可以两端都自由变化。就像策略模式中举的例子一样,赵云可以怀揣各种锦囊去保护刘备过江东,这里锦囊可以无限扩展,那赵云可不可以扩展呢?比如正好那几天赵云病倒了,要派张飞去可不可以呢?可以!其实派谁去都是作为刘备的保镖去的,所以诸葛亮抽象出个保镖的身份,要做保镖只需走的时候携带锦囊并且会打开看就可以。所以张飞培训了一会,知道怎么打开锦囊,又在衣服上缝了个口袋,这样走的时候就可以揣上各种锦囊,是不是和赵云一样拉风!这里保镖就是Abstraction,锦囊是Implementor,赵云和张飞就是RefineAbstraction,各种锦囊就是ConcreteImp。



主要内容:本文详细介绍了一种QRBiLSTM(分位数回归双向长短期记忆网络)的时间序列区间预测方法。首先介绍了项目背景以及模型的优势,比如能够有效利用双向的信息,并对未来的趋势上限和下限做出估计。接着从数据生成出发讲述了具体的代码操作过程:数据预处理,搭建模型,进行训练,并最终可视化预测结果与计算分位数回归的边界线。提供的示例代码可以完全运行并且包含了数据生成环节,便于新手快速上手,深入学习。此外还指出了模型未来发展的方向,例如加入额外的输入特性和改善超参数配置等途径提高模型的表现。文中强调了时间序列的标准化和平稳检验,在样本划分阶段需要按时间序列顺序进行划分,并在训练阶段采取合适的手段预防过度拟合发生。 适合人群:对于希望学习和应用双向长短时记忆网络解决时序数据预测的初学者和具有一定基础的研究人员。尤其适用于有金融数据分析需求、需要做多一步或多步预测任务的从业者。 使用场景及目标:应用于金融市场波动预报、天气状况变化预测或是物流管理等多个领域内的决策支持。主要目的在于不仅能够提供精确的数值预计还能描绘出相应的区间概率图以增强结论置信程度。 补充说明:本教程通过一个由正弦信号加白噪构造而成的简单实例来指导大家理解和执行QRBiLSTM流程的所有关键步骤,这既方便于初学者跟踪学习,又有利于专业人士作为现有系统的补充参考工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值