zoukankan      html  css  js  c++  java
  • 项目中使用到的设计模式

    1、模板方法模式
    定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,如JdbcTemplate
    2、代理
    spring的Proxy模式在aop中有体现
    3、观察者
    定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
    spring中Observer模式常用的地方是listener的实现。如ApplicationListener。
    4、适配器(Adapter )
    MethodBeforeAdviceAdapter类
    5、策略模式
    使用了java的继承和多态
    案例1:加减法计算器,定义一个计算类接口,加法和减法类都实现它,加的时候传入加法对象。
    案例2:导出excel,pdf,word时,分别创建不同的对象
    简单理解:执行多个事情时,创建多个对象
    6、单例模式
    解决一个全局使用的类频繁的创建与销毁
    7、工厂模式
    分为三种:简单工厂,工厂方法,抽象工厂
    根据“需求”生产“产品”,解耦“需求”“工厂”和“产品”。

    简单工厂:通过构造时传入的标识来生产产品,不同产品都在同一个工厂中生产,每新增加一种产品,需要改工厂类,来判断,这种判断会随着产品的增加而增加,给扩展和维护带来麻烦
    简单工厂项目案例:根据传入的 不同(比如1对应支付流水,2 对应订单流水),生成不同类型的流水号

    工厂方法:(使一个类的使用延迟到子类)
    其中的工厂类根据传入的A.class类型,反射出实例。
    产品接口,产品类A,产品类B,工厂类可以生成不同的产品类对象,如果要随着产品的增加而增加,工厂类不变,只需新增一个产品类C即可。
    项目案例:邮件服务器,有三种协议,POP3,IMAP,HTTP,把这三种做完产品类,在定义个工厂方法

    抽象工厂:一个工厂生产多个产品,它们是一个产品族,不同的产品族的产品派生于不同的抽象产品

  • 相关阅读:
    redmineBUG系统
    MySQL错误代码
    一篇文章全面了解监控知识体系
    K2 blackpearl 流程开发(一)
    HTTP 协议详解
    http协议学习系列
    浅谈HTTP中Get与Post的区别
    iOS应用程序生命周期(前后台切换,应用的各种状态)详解
    深入浅出 iOS 之生命周期
    iOS-利用AFNetworking(AFN 1.x)-实现文件上传
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13310660.html
Copyright © 2011-2022 走看看