美文网首页
设计模式

设计模式

作者: OOMNPE | 来源:发表于2019-05-29 18:27 被阅读0次

    1、设计模式分类:

    • 创建型模式,共五种:
      工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
    • 结构型模式,共七种:
      适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
    • 行为型模式,共十一种:
      策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

    2、适配器模式:

    优点和应用场景:

    复用性:系统需要使用现有的类,而此类的接口不符合系统需要。那么可以通过适配器模式将这些功能更好的复用。
    扩展性:在实现适配器功能的时候,可以自己定义想要的方法而不改变原来的类,从而自然的扩展系统的功能。

    类适配器和对象适配器区别

    类适配器,由于是继承,所以无法和源类的子类一起工作,而对象适配器可以把源类和它的子类都适配到目标接口。
    类适配器可以重新定义父类的部分方法,而对象适配器就比较困难。
    尽量使用对象适配器,多用 合成/聚合,少用继承。

    3、代理模式:

    定义及应用场景:

    为其他对象提供一种代理以控制对这个对象的访问,替原对象进行一些操作,比如中介;如果已有的方法在使用时需要对原方法进行改进,比如前置检测,后置记录日志,这个时候使用代理类。

    java动态代理

    如果代理类程序运行前并不存在,需要在程序运行时动态生成(无需收工编写代理类源码),这时候就用动态代理
    如何生成:根据java的反射机制动态生成的。
    Proxy.newProxyInstance(ClassLoader loader,Class<?>[] interfaces,InvocationHandler handler);
    Spring的AOP就是典型的动态代理应用。

    4、观察者模式:

    解决的问题和应用场景

    定义对象间的一种一对多的依赖关系,当一个对象的状态发生变化时,所依赖它的对象得到通知并被自动更新。此模式通常用来处理事件处理系统。
    通知代替轮询。解耦观察者和被观察者,避免直接调用。

    相关文章

      网友评论

          本文标题:设计模式

          本文链接:https://www.haomeiwen.com/subject/ejkutctx.html