摘要:
原文:http://c.biancheng.net/view/1402.html定义:给分析对象定义一个语言,并定义该语言的文法表示,再设计一个解析器来解释语言中的句子。什么时候用:当语言的文法较为简单,且执行效率不是关键问题时。 当问题重复出现,且可以用一种简单的语言来进行表达时。 当一个语言需要 阅读全文
摘要:
原文:http://c.biancheng.net/view/1400.html定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态。该模式又叫快照模式。什么时候用: 需要保存与恢复数据的场景,如玩游戏时的中间结果的存档功能 阅读全文
摘要:
原文:http://c.biancheng.net/view/1397.html定义:将作用于某种数据结构中的各元素的操作分离出来封装成独立的类,使其在不改变数据结构的前提下可以添加作用于这些元素的新的操作,为数据结构中的每个元素提供多种访问方式。什么时候用: 对象结构相对稳定,但其操作算法经常变化 阅读全文
摘要:
原文:http://c.biancheng.net/view/1395.html定义:提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。什么时候用: 当需要为聚合对象提供多种遍历方式时。 当需要为遍历不同的聚合结构提供一个统一的接口时。 当访问一个聚合对象的内容而无须暴露其内 阅读全文
摘要:
原文:http://c.biancheng.net/view/1393.html定义:定义一个中介对象来封装一系列对象之间的交互,使原有对象之间的耦合松散,且可以独立地改变它们之间的交互。中介者模式又叫调停模式。什么时候用: 当对象之间存在复杂的网状结构关系而导致依赖关系混乱且难以复用时。 当想创建 阅读全文