• 个人感悟之设计模式应用场景


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

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

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

    单例模式 保证独一无二

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

    原型模式  孙猴子的毛

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

    代理模式  办事找代理

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

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

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

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

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

  • 相关阅读:
    deflate树与deflate编码
    生产者消费者模式下的并发无锁环形缓冲区
    环形缓冲区的设计及其在生产者消费者模式下的使用(并发有锁环形队列)
    zeromq源码分析笔记之无锁队列ypipe_t(3)
    zeromq源码分析笔记之线程间收发命令(2)
    zeromq源码分析笔记之架构(1)
    PHP和golang差异见解
    关于助力红包随机分配思考总结
    TCP四次挥手
    TCP三次握手
  • 原文地址:https://www.cnblogs.com/Jolivan/p/9073691.html
Copyright © 2020-2023  润新知