解决问题 它主要解决的问题是“递归、循环”问题或者大量的if-else 问题。通过定义不通的receiver,并在运行时决定receiver的执...
解决问题 它主要解决的问题是“递归、循环”问题或者大量的if-else 问题。通过定义不通的receiver,并在运行时决定receiver的执...
解决问题 客户端调用逻辑与业务代码有效隔离,使得客户端调用只和Facade进行交互,内部的调用逻辑由Facade进行实现。此模式也可以和接口化编...
解决问题 大量相同(相似)小对象造成的内存占用问题。比如文本编辑器,如果对每个字符对生成一个对象(要涉及字符、字体等),将会是一个非常庞大的数据...
解决问题 保证只生成一个对象的实例 应用场景 仅需要一个对象的场景:比如打印机打印(无论多少任务,一次只打印一个);计时器;线程池等(多项任务共...
解决问题 使发令者与执行者之间相分离。 应用场景 比如后台开发过程中的请求数据库、RPC接口等。通常情况下,我们会将请求逻辑(参数封装、结果解析...
解决问题 主要解决由于状态不同而导致对象行为发生复杂变化(特别是多种行为发生变化),这时候如果仅通过if来处理,会使代码复杂度不可控。我们保以认...
解决问题 采用“双重委派”方式,使访问者和被访问对象进行隔离。有点难理解。。。。 应用场景 它有一定的应用局限性,访问者和被访问者应该可被枚举,...
解决问题 主要解决创建复杂对象的问题。 应用场景 当某一系列对象需要复杂的逻辑控制创建过程,过程创建过程比较复杂时,可以采用工厂模式。 工厂模式...
解决问题 一方面保证对象本身的行为聚合,避免非对象行为逻辑杂糅到对象行逻辑之中。另一方面,实现对象行为增强,通过代理织入代码,来增强对象的行为功...
解决问题 提供一种方法顺序访问一个聚合对象中各个元素,而又不需要暴露该对象的内部表示。 应用场景 作用主要用于对象的元素的遍历,相对于使用for...
专题公告
做一个代码的设计师