设计模式

【设计模式工程实践】装饰器模式记录对订单管理的操作日志

装饰器模式:对目标类的功能进行增强,但是又不想去直接修改原来的类的代码,因为一旦修改就得重新测试这个类,违背“对扩展开放,对修改关闭”的原则。另外,有的时候想增强的类是别人给的jar包,你想修改也没法修改。此时,就可以上装饰器模式。装饰器模式有一些非常经典的实现(1)比如java的io体系,可以一层

  • Jone
    Jone
2020-11-30
设计模式

【设计模式工程实践】状态模式-审核流程管理

状态模式:封装数据的状态流转逻辑状态模式里,非常重要的一点就是将状态之间流转的逻辑,封装在Context类里面。本来可能需要调用方自己维护复杂的状态流转逻辑,流转到不同的状态之后,执行状态对应的代码逻辑。需求背景:上线一个商品的流程包括:编辑,审核,上架三个过程。处于每个流程时,状态属性是不一样的定

  • Jone
    Jone
2020-11-30
设计模式

【设计模式工程实践】组合模式和访问者模式

组合模式:对层级数据递归调用执行操作我们要对部门树,删除一个父部门以及其下所有的子部门系的那种场景,比如部门树的递归删除,或者是文件树的递归删除之类的场景。访问者模式:访问者模式,是对目标对象,动态的执行某个功能,而不对目标对象有任何的改动。访问者和组合模式天然适合组合起来使用。需求场景:一个管理系

  • Jone
    Jone
2020-11-30
设计模式

【设计模式工程实践】迭代器模式

迭代器模式:数据类型改了但是遍历代码不变,实现抽象解耦所谓的迭代器模式,什么时候用?其实只有一个场景,就是如果你需要基于一些不支持迭代的数据,来让我们业务代码进行迭代,那么你自己就要去实现基于那个数据的一套迭代代码,以迭代器的方式返回回去给业务方,来通过你定义的迭代器,进行数据的迭代。mysql数据

  • Jone
    Jone
2020-11-30
设计模式

【设计模式工程实践】策略模式-完成各种运费计算规则

根据不同的输入差异,应用不同的规则,得出不同的输出值这种情况就适合策略模式。需求:计算一个订单运费的适合,会根据重量和目的地有各种计费规则:固定运费,满XX包邮,某几个省份包邮,超过多少重量加价多少等等。如果选择了固定运费:让你设置一个固定运费是多少元,固定运费20元。{“fixed_freigt”

  • Jone
    Jone
2020-11-30