`
yunhaifeiwu
  • 浏览: 163909 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

略淡策略模式

阅读更多
  
   策略模式应用场所是什么?  就是在软件设计时,发现有不同的算法(或操作过)在不同对象间经常变来变去,这是可以考虑使用策略模式。注意是考虑用策略模式。 如果发现这些算法,不管怎么变化,总可以用统一的较为简单的方法去调用这些算法,那么可以用策略模了。实现方法是:作一个抽象类标识为A,该类有一个统一调用其他算法的方法 标识为method(...)。 其他不同算法的 单独写一个类,并继承A,然后覆盖method(...),并在这个方法中调用具体实现了的算法。另外 要使用算法的类,都必须允许注入这些算法的公共调用方法的所在类,即上面中的A. 这样在使用时,如果发现某个类需要使用某个具体算法时,把相应算法类注入进去就可以了。 简单描述实现方法各自的算法用不同的类封装,但是这些类都必须继承并覆盖同一个父类,这个父类是个抽象类,他必须具有能统一调用这些算法的方法。 在使用时,哪些其他类要使用某些算法,就把这些算法的实例注入进去。当然了,使用算法的类,要注入的地方其相关类型,是这些算法的父类,而非具体算法类。

   简单代码表示为:

   使用模式前1 :
    public method1(xx){//具体代码}
    public method2(xx){//具体代码}
    public method3(xx){//具体代码}

  
    使用模式前2 :发现这些方法,都可用下面的方法进行调用
   
public method(xx) 


    使用模式 步骤1:
   
public abstract class A{  public method(xx)}


    使用模式 步骤2:
   
public class B extends A {
        private method1(xx) {//具体代码}
        public method(xx) {method1(xx) }
    }

     public class C extends A {
        private method2(xx) {//具体代码}
        public method(xx) {method2(xx) }
    }
    
     public class D extends A {
        private method2(xx) {//具体代码}
        public method(xx) {method2(xx) }
    }


    使用模式 步骤2:
   
Class Use1 {
       privater A a;//省略getter and setter.这表明允许注入算法的共共调用方法的所在类
       public void userMethod(){a.method();}
       //省略其他
    }

    Class Use2 {
       privater A a;//省略getter and setter.这表明允许注入算法的共共调用方法的所在类
         public void userMethod(){a.method();}
       //省略其他
    }

    用户开始真正使用:
  
 Use1 u1=new Use1(); 
    //当发现此时u1需要使用 method2操作,
    u1.setA(new C())
    u1.userMethod();


    说明:使用类,你可以根据需要存储N多种算法类实例,你也可以在运用类的实例化过程中,固定生成某些算法,总之根据你的需要了,可以变化。
分享到:
评论

相关推荐

    建筑建材行业周报:回调仍在持续,建材淡旺季影响显露.pdf

    在投资策略方面,报告提出了对钢结构建设的特别关注,其中杭萧钢构作为代表,其新商业模式取得的进展令人瞩目。钢结构建筑因其工期短、抗震性能好等优点在某些特定区域和项目中越来越受到青睐。而PPP(Public-...

    SQL入门指南:从零开始掌握数据库操作.pdf

    内容概要:本文档是一份详细的SQL入门指南,旨在帮助初学者全面掌握SQL的基本概念和技术。首先介绍了SQL的基础知识及其重要性,解释了为什么学习SQL对数据分析和软件开发至关重要。接着详细讲解了如何快速搭建SQL环境,包括在线沙箱和本地安装两种方式。随后深入探讨了SQL的基础语法,如创建数据库和表、插入、查询、更新和删除数据的操作。进一步解析了核心操作,如复杂的查询语句结构、多表关联查询以及实用的功能,如条件表达式、日期处理和字符串操作。最后提供了新手常见问题的解决方案和性能优化建议,并推荐了一些学习资源。 适合人群:对数据库操作感兴趣的初学者,尤其是希望从事数据分析或软件开发的人士。 使用场景及目标:适用于想要系统学习SQL基础知识和核心操作的个人,目标是在实践中掌握SQL技能,能够独立进行数据库管理和操作。 其他说明:文档不仅涵盖了理论知识,还提供了大量实例和练习建议,帮助读者更好地理解和应用所学内容。

    计算机二级考试C语言历年真题及答案.pdf

    计算机二级考试C语言历年真题及答案.pdf

    flink 自定义连接器

    flink 自定义连接器

    软考网络工程师视频教程及复习指导资料.zip

    软考网络工程师视频教程及复习指导资料,含视频教程、历年真题、模拟试题等。

    计算机二级access历年笔试真题及答案.pdf

    计算机二级access历年笔试真题及答案.pdf

    三菱PLC FX3U控制松下伺服的多轴联动解决方案:基于功能块的高效编程与调试

    内容概要:本文详细介绍了使用三菱PLC FX3U和1PG定位模块控制四个松下伺服电机的项目经验。项目将常用的JOG、HOME、定位等功能封装成独立的功能块(FB),并通过结构化文本(ST)编写程序。每个功能块不仅包含了核心逻辑,还进行了详细的异常处理和参数映射,确保系统的稳定性和易用性。此外,文章还涵盖了电气图纸、触摸屏配方管理以及硬件配置等方面的注意事项,提供了完整的项目实施指南。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对三菱PLC和松下伺服有一定了解的人群。 使用场景及目标:适用于需要高精度多轴联动控制的工业应用场景,如数控机床、机器人等。目标是帮助工程师快速搭建稳定的控制系统,减少调试时间和复杂度。 其他说明:文中提供的代码片段和硬件配置建议经过实际验证,能够有效提高项目的成功率。同时,文章强调了良好的注释习惯和详细的文档记录对于后续维护的重要性。

    办公室网安全监控uptime-kuma,docker镜像离线压缩包

    办公室网安全监控uptime-kuma,docker镜像离线压缩包

    教程-typescript-简介和入门

    教程-typescript-简介和入门

    S7-1200 PLC五轴伺服运动控制项目:结构化编程与功能实现详解

    内容概要:本文详细介绍了基于西门子S7-1200 PLC控制五轴伺服系统的项目实施经验,涵盖手动模式、自动运行状态机、伺服模式切换、断电保持以及报警处理等多个关键环节。作者通过结构化编程思想,将复杂的多轴控制系统分解为多个独立的功能块,确保系统稳定性和可扩展性。文中不仅展示了具体代码实现,还分享了许多实用技巧,如通过枚举类型构建状态机、利用保持存储器实现断电位置记忆、采用环形缓冲区记录报警信息等。 适合人群:从事工业自动化控制领域的工程师和技术人员,尤其对PLC编程和伺服控制有一定基础的人群。 使用场景及目标:适用于需要进行复杂多轴运动控制的工业应用场景,旨在提高系统的可靠性、灵活性和易维护性。通过学习本文,读者可以掌握如何运用结构化编程方法优化PLC程序设计,提升工作效率并减少错误发生。 其他说明:文章强调了良好的编程习惯对于大型工程项目的重要性,提倡模块化、组件化的设计理念。此外,还提到了一些常见的陷阱及其解决方案,帮助初学者避开弯路。

    win32汇编环境,网络编程入门之十五

    win32汇编环境,网络编程入门之十五

    12届嵌入式省赛题1111111

    12届嵌入式省赛题1111111

    Cadence两级放大电路版图设计与LVS/DRC验证的技术解析

    内容概要:本文详细记录了作者在Cadence平台中完成一个两级放大电路版图设计的过程,涵盖了从初步设计到最终通过LVS(Layout vs Schematic)和DRC(Design Rule Check)验证的所有步骤。文章首先介绍了电路的基本结构和参数设定,如共源放大器和共栅放大器的关键参数调整,以及在Virtuoso环境中进行的具体操作。接着,作者分享了在版图绘制过程中遇到的各种挑战及其解决方案,包括晶体管尺寸优化、走线布局、寄生参数控制、金属层间距调整等。此外,还特别强调了LVS和DRC验证中的常见问题及应对策略,如端口不匹配、器件参数偏差、金属密度规则等。最后,作者总结了一些实用的设计技巧和注意事项,为后续类似项目提供了宝贵的经验。 适合人群:从事集成电路设计的专业人士,尤其是对模拟电路版图设计感兴趣的工程师和技术爱好者。 使用场景及目标:帮助读者掌握Cadence环境下两级放大电路版图设计的方法,提高LVS和DRC验证的成功率,减少设计周期内的返工次数,提升设计效率。 其他说明:文中提到的具体数值和代码片段仅供参考,在实际应用中需要根据具体的工艺规则和个人需求进行适当调整。

    内江市乡镇边界,矢量边界,shp格式

    矢量边界,行政区域边界,精确到乡镇街道,可直接导入arcgis使用

    器件模型与参数提取工具,由中国科学院微电子研究所开源的针对后摩尔时代新型器件模型与参数提取工具matlab (2).zip

    matlab

    卒中风险预测数据集,脑中风预测数据集,包含影响中风风险的指标(包含16个特征和2个目标变量),适用于机器学习和数据分析

    这个Stroke Risk Prediction Dataset(卒中风险预测数据集)的版本2旨在通过症状、人口统计学和基于医学文献的风险模型来预测卒中风险。相比于版本1,它在多个方面进行了显著改进,包括年龄相关的症状概率、性别特异性风险调整以及经过医学验证的特征工程等。 主要增强点: 年龄准确的风险建模:卒中风险随着一个S型曲线增加,在50岁之后急剧上升,这反映了现实世界的流行病学趋势。 性别特定的风险:60岁以下的男性风险是女性的1.5倍,而60岁以上的女性(绝经后的激素变化)风险比同龄男性高1.8倍。 平衡且扩展的数据集:样本量从10,000增加到35,000,以提高模型的普遍性和捕捉罕见的症状组合。其中50%为卒中风险≥50%,另外50%为卒中风险<50%。 数据集结构 该数据集包含16个特征和2个目标变量(分类目标和回归目标),涉及年龄、性别、各种二元症状指标(如胸痛、呼吸急促、心律不齐等)、是否处于风险中(二元分类目标)以及卒中风险百分比(回归目标)。 医学有效性 数据集基于同行评审的医学文献构建,症状概率、风险权重及人口统计关系直接来源于临床指南和流行病学研究。例如,

    搭建环境:JDK-17

    搭建环境:JDK-17

    流程图111111111111111

    流程图111111111111111

    若夏小说2.2专业版内核 WAP端+电脑端+在线充值+关关采集器(送规则)

    这款模板需要2.2的程序,模板的仿照若夏文学网,模板以粉色彩蝶为主,也就女生版的,可以做言情类的原创站,程序带 有充值、打赏、vip等原创功能,凡是购买本模板送2.2程序,还送手机独立板子及关关采集器。2.2是官方的没有漏洞、后 门什么的,可以放心使用! 安装说明: 详细见压缩包,要求PHP5.3以上环境。

    2023年5月房地产行业舆情监测报告:政策、品牌及重点事件分析

    本报告由艾普思咨询发布,详细分析了2023年5月中国房地产行业的舆情状况。主要内容涵盖行业发展简报、舆情态势(声量/情感分布、来源/媒介分布、典型报道、地域分布)、品牌舆情关注度TOP10以及重点舆情话题和事件。报告指出,5月份房地产行业舆情声量显著上升,达到27,344,454篇次,主要受政策调整、企业动态等因素影响。此外,报告特别关注了万达集团大规模裁员传闻和光明房地产集团原董事长沈宏泽接受审查调查两大重点事件。 房地产从业者、投资者、政策研究者及相关媒体从业人员。

Global site tag (gtag.js) - Google Analytics