包引入 断言 Assume(假设) Assume顾名思义是假设的意思也就是做一些假设,只有当假设成功后才会执行接下来的代码 使用Assumpti...
解决问题 大量相同(相似)小对象造成的内存占用问题。比如文本编辑器,如果对每个字符对生成一个对象(要涉及字符、字体等),将会是一个非常庞大的数据...
解决问题 客户端调用逻辑与业务代码有效隔离,使得客户端调用只和Facade进行交互,内部的调用逻辑由Facade进行实现。此模式也可以和接口化编...
解决问题 它主要解决的问题是“递归、循环”问题或者大量的if-else 问题。通过定义不通的receiver,并在运行时决定receiver的执...
解决问题 原型模式,即通过原型来创造对象,而不是通过new。它在功能上是与单例模式相对的,与工厂模式的功能类似;但相对于工厂模式、它提供了一种更...
解决问题 将算法按照策略或场景封装起来,以方便按照不同的场景执行不同的策略。它很好的解决了通过if...else 来决策行为而带来的代码和逻辑复...
解决问题 为避免重复代码及屏蔽复杂的算法逻辑,将相同的代码抽象出一个模板,差异化的client端实现abstract方法。 应用场景 Templ...
解决问题 它可以将局部和整体无差异化处理。 应用场景 对于一个问题,如果每个局部都有类似的处理方式,那么我们就可以将其整合成一个整体,统一处理,...
应用场景 这个在编译器的语义分析过程中常用的一种模式,即分析虚拟语法树(AST),但它并不能解决如何生成语法树的问题。 在实际的工作中,有时也会...