[db:SY_tag]
策略设计模式
意图 定义一系列算法,封装每个算法,并使它们可互换。策略让算法独立于使用它的客户端而变化。 捕获接口中的抽象,将实现细节隐藏在派生类中。 问题 面向对象设计的主要策略之一是“开闭原…
代理设计模式
意图 为另一个对象提供代理或占位符以控制对其的访问。 使用额外的间接级别来支持分布式、受控或智能访问。 添加包装器和委托以保护真实组件免受过度复杂性的影响。 问题 您需要支持资源匮…
观察者设计模式
意图 定义对象之间的一对多依赖关系,这样当一个对象改变状态时,它的所有依赖项都会得到通知并自动更新。 将核心(或通用或引擎)组件封装在 Subject 抽象中,将变量(或可选或用户…
建造者设计模式
意图 将复杂对象的构造与其表示分离,以便相同的构造过程可以创建不同的表示。 解析复杂的表示,创建几个目标之一。 问题 应用程序需要创建复杂聚合的元素。聚合规范存在于辅助存储中,并且…
备忘录设计模式
意图 在不违反封装的情况下,捕获并外化对象的内部状态,以便稍后可以将对象返回到该状态。 封装“检查点”功能的魔术 cookie。 将撤消或回滚提升到完整对象状态。 问题 需要将对象…