zoukankan      html  css  js  c++  java
  • 第一天:简单工厂与策略模式

    书摘:

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

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

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

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

    感悟:

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

    结合工作中遇到的问题:

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

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

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

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

  • 相关阅读:
    Java -- 最简单的认识重载
    maven打包spring boot项目及跳过test文件
    springboot 配置elasticsearch Java High Rest Client
    面向对象与面向过程的区别
    vue --- axios拦截器+form格式请求体
    kotlin --- 时间戳与字符串互相转换
    各种技术的路线图
    bpmn-js起步
    纵观 jBPM:从 jBPM3 到 jBPM5 以及 Activiti5
    几大工作流引擎对比
  • 原文地址:https://www.cnblogs.com/neking/p/2893228.html
Copyright © 2011-2022 走看看