美文网首页
设计模式

设计模式

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

1、设计模式分类:

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

2、适配器模式:

优点和应用场景:

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

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

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

3、代理模式:

定义及应用场景:

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

java动态代理

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

4、观察者模式:

解决的问题和应用场景

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

相关文章

  • 设计模式

    常用的设计模式有,单例设计模式、观察者设计模式、工厂设计模式、装饰设计模式、代理设计模式,模板设计模式等等。 单例...

  • 设计模式笔记汇总

    目录 设计原则 “依赖倒置”原则 未完待续... 设计模式 设计模式——策略模式 设计模式——装饰者模式 设计模式...

  • 设计模式

    《C#设计模式》 《C#设计模式》-设计模式概述 《C#设计模式》-面向对象设计原则 《C#设计模式》-单例模式 ...

  • 浅谈JS的一些设计模式

    @(书籍阅读)[JavaScript, 设计模式] 常见设计模式 设计模式简介 设计模式概念解读 设计模式的发展与...

  • 前端设计模式

    JS设计模式一:工厂模式jS设计模式二:单例模式JS设计模式三:模块模式JS设计模式四:代理模式JS设计模式五:职...

  • 设计模式之工厂模式

    设计模式之工厂模式 标签(空格分隔): 设计模式 工厂模式 设计模式的感念 设计模式的应用 工厂设计模式的产生 工...

  • JavaJavascript基础进阶(十七)JS中常用的设计模式

    单利设计模式、构造原型设计模式、发布订阅设计模式、promise设计模式 单利模式 构造原型设计模式 最贴近OOP...

  • 设计模式 - 目录

    设计模式01 - 单例模式 设计模式02 - 工厂模式 设计模式03 - 建造者模式 设计模式04 - 适配器模式...

  • 第1章 设计模式概述

    一、设计模式的概念 二、设计模式的历史 三、设计模式的要素 四、设计模式的分类 ■ 创建型设计模式 ■ 结构型设计...

  • iOS设计模式(3)适配器模式

    设计模式系列文章 《iOS设计模式(1)简单工厂模式》《iOS设计模式(2)工厂模式》《iOS设计模式(4)抽象工...

网友评论

      本文标题:设计模式

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