zoukankan      html  css  js  c++  java
  • 个人感悟之设计模式应用场景

    设计模式不是你想要用它的时候去套他,而是根据业务场景选择。设计模式属于经验的总结,是用来解决复杂问题的,把复杂的问题简单化。

    工厂模式 只对结果负责,不要三无产品

    例子:生产方式的转变:小作坊->工厂->流水线,从无到有自己玩,到发明一个小作坊,到慢慢专业化的状态,生产细节只掌握在某一部分人手里,后来工厂有拆分为专职工厂,工厂之间协作的模式。同时在Spring中也有例子:BeanFactory。

    单例模式 保证独一无二

    在整个系统运行阶段,为了减少浪费提高资源重复利用的时候,只有一个实例。可以考虑采用单例模式的场景:配置文件、IOC容器、监控程序等只有一个的情况下。Spring中最常用的事注册登记式。工厂也有可能是单例,工厂创建的Bean也有可能是单例。

    原型模式  孙猴子的毛

    核心就是复制。Sring中用到原型模式就是希望配置信息能够被重复使用并且不被干扰。技术手段:(1)实现cloneable接口,重写clone方法。(2)字节码操作。(3)反射机制。Spring中使用的事反射机制。字节码操作效率最高。

    代理模式  办事找代理

    应用场景:中介、黄牛经纪人。代码场景主要是:字节码增强、动态实现非侵入式编程。对于一个事情,代理模式只参与一部分,如果参与所有的事,那就是委托模式。

    策略模式  为目的什么都可以

    应用场景:旅游路线,出行方式的选择。代码场景:算法的选择。使用策略模式可以巧妙的避免了if/switch等语句。

    模板方法  流程标准化,原料自己加

    流程固定,某一个环节有差异。

  • 相关阅读:
    CF786E ALT
    CF704D Captain America
    [NOI2016]循环之美
    「PKUWC2018」猎人杀
    [HNOI2019]JOJO
    博客已转移
    $20200203$的数学作业
    20200202的数学作业
    NOIp 2016 选课 (DP)
    Luogu P2574 XOR的艺术 (线段树)
  • 原文地址:https://www.cnblogs.com/Jolivan/p/9073691.html
Copyright © 2011-2022 走看看