• 第一天:简单工厂与策略模式


    书摘:

    面向对象的编程,并不是类越多越好,类的划分是为了封装,但分类的基础是抽象,具有相同属性和功能的对象的抽象集合才是类。

    策略模式:定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。

    优点,(1)减少同类的各种算法与使用算法类之间的耦合(2)简化单元测试,使每个算法都有自己的类,可以通过自己的接口单独测试。(3)对某种算法的修改,或添加新的算法,不影响现有算法类。

    在分析问题时,出现了需要在不同时间应用不同的业务规则,就可以考虑使用策略模式。此时可以与创建型的模式结合起来效果更好。

    感悟:

    简单工厂将类的对象(实例)的创建职责从客户端和类自身中解耦出来,符合设计原则中的S(单一职责)。类自身完成自己的职责,而创建职责交给工厂类(对象)。

    结合工作中遇到的问题:

      系统中有一个任务执行器,一个任务可以是typeA,typeB, typeC三种类型中的一个,执行器根据不同的任务选择不同的执行逻辑(算法)。

      现有代码是在执行器的类中定义3个不同的方法,在通过类型具体选择调用哪个方法。

      这时,如果需要新加一种任务的类型,就要在执行器的类中新加一个方法,导致接口变化,而使客户代码需要重新编译(c++)。

      解决办法:重构现有代码,使用策略模式和简单工厂。

  • 相关阅读:
    Sqlserver中 登录用户只能看到自己拥有权限的库
    数据库的快照隔离级别(Snapshot Isolation)
    (0.2.4)Mysql安装——yum源安装
    sql server动态行列转换
    yum源的报错排除
    sql server dba概念系列引用
    (4.18)数据压缩
    如何查看windows某个目录下所有文件/文件夹的大小?(TreeSize Free)
    持续集成
    PM加油站
  • 原文地址:https://www.cnblogs.com/neking/p/2893228.html
Copyright © 2020-2023  润新知