美文网首页23种设计模式-java
专题列表页
23种设计模式-java

做一个代码的设计师

  • 1
    2019-06-11
  • 单例模式是一种常见的设计模式,写法也比较多,在这篇文章里面主要是对单例模式的各种写法进行一个介绍。 这篇文章的主要...[作者空间]

  • 7
    2018-06-08
  • 解决问题 大量相同(相似)小对象造成的内存占用问题。比如文本编辑器,如果对每个字符对生成一个对象(要涉及字符、字体...[作者空间]

  • 23
    2018-06-08
  • 解决问题 客户端调用逻辑与业务代码有效隔离,使得客户端调用只和Facade进行交互,内部的调用逻辑由Facade进...[作者空间]

  • 9
    2018-06-08
  • 解决问题 它主要解决的问题是“递归、循环”问题或者大量的if-else 问题。通过定义不通的receiver,并在...[作者空间]

  • 5
    2018-06-08
  • 解决问题 原型模式,即通过原型来创造对象,而不是通过new。它在功能上是与单例模式相对的,与工厂模式的功能类似;但...[作者空间]

  • 9
    2018-06-08
  • 解决问题 将算法按照策略或场景封装起来,以方便按照不同的场景执行不同的策略。它很好的解决了通过if...else ...[作者空间]

  • 22
    2018-06-08
  • 解决问题 为避免重复代码及屏蔽复杂的算法逻辑,将相同的代码抽象出一个模板,差异化的client端实现abstrac...[作者空间]

  • 12
    2018-06-08
  • 解决问题 它可以将局部和整体无差异化处理。 应用场景 对于一个问题,如果每个局部都有类似的处理方式,那么我们就可以...[作者空间]

  • 3
    2018-06-08
  • 应用场景 这个在编译器的语义分析过程中常用的一种模式,即分析虚拟语法树(AST),但它并不能解决如何生成语法树的问...[作者空间]

  • 9
    2018-06-08
  • 解决问题 以一种更加清晰简洁的方式来解决复杂结构体的构建过程,且可以让用户更加灵活地控制对象的构建过程。相对于co...[作者空间]

  • 19
    2018-06-08
  • 解决问题 观察者模式又称之为发布-订阅模式,它的一个关键作用是使角色之间解耦合。 应用场景 常见的应用场景是分布式...[作者空间]

  • 12
    2018-06-08
  • 解决问题 动态地为对象添加功能,这是相对于继承而言的,继承是在定义类的时候扩展功能,而Decorator_patt...[作者空间]

  • 10
    2018-06-08
  • 解决问题 所谓适配器模式,类似于电脑的各种端口,例如USB,只要实现了USB协议的终端都可以在电脑上使用,只需要提...[作者空间]

  • 4
    2018-06-08
  • 解决问题 它解决的是对象之间复杂的交互问题。如果多个对象之间,需要进行某一种或者几种交互,那么可以通过一个中心(中...[作者空间]

  • 2
    2018-06-08
  • 解决问题 对象和行为自由组合。当不同的对象具有多种可枚举的行为,且不同行为的对象可被描述为不同的具体的对象,不同的...[作者空间]

  • 4
    2018-06-08
  • 解决问题 提供一种方法顺序访问一个聚合对象中各个元素,而又不需要暴露该对象的内部表示。 应用场景 作用主要用于对象...[作者空间]

  • 11
    2018-06-08
  • 解决问题 一方面保证对象本身的行为聚合,避免非对象行为逻辑杂糅到对象行逻辑之中。另一方面,实现对象行为增强,通过代...[作者空间]

  • 9
    2018-06-08
  • 解决问题 主要解决创建复杂对象的问题。 应用场景 当某一系列对象需要复杂的逻辑控制创建过程,过程创建过程比较复杂时...[作者空间]

  • 8
    2018-06-08
  • 解决问题 采用“双重委派”方式,使访问者和被访问对象进行隔离。有点难理解。。。。 应用场景 它有一定的应用局限性,...[作者空间]

  • 10
    2018-06-08
  • 解决问题 主要解决由于状态不同而导致对象行为发生复杂变化(特别是多种行为发生变化),这时候如果仅通过if来处理,会...[作者空间]