摘要:
重点概念 1. 所有类都有构造方法,不编码则系统默认生成空的构造方法,若有显示定义的构造方法,默认的构造方法就会失效。 2. 将构造方法私有化,并提供一个创建自己实例的方法,在方法中去做是否有实例化的判断,判断需要一个自己的静态变量。 3. 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 4. 让类自身负责保存它的唯一实例,这个类可以保证没有其他实例可以被创建,并且它可以提供一个访... 阅读全文
摘要:
C# 中已经实现了迭代器功能, foreach in 和 IEnumerable 和 IEumerator 接口 是为迭代器而准备的。 所以在实用性上已经没有了。 重点概念 1.提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。 2.当访问一个聚集对象,而且不管这些对象是什么都需要遍历的时候,你就应该考虑用迭代器模式。 3.遍历的方式可以从头到尾,也可以从尾到头的选择... 阅读全文
摘要:
重要概念 1. 将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 2. 透明方式与安全方式 透明方式:抽象层接口最大化 安全方式:抽象层接口最小化 3.需求中是体现部分和整体层次的结构时,以及你希望用户可以忽略组合对象与单个对象的不同,统一地使用组合结构中的所有对象时,就应该考虑用组合模式了。 4. 组合模式的核心技巧是,模拟一个数... 阅读全文
摘要:
重点概念 1. 希望把存取状态的细节封装起来,而且最好是封装在外部的类当中,以体现职责分离。 2. 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先保持你的状态。 3.要保存的细节给封装在了Memento中,修改备忘录中数据也不会影响客户端。 4.备忘录模式适合功能复杂但需要维护或记录属性历史的类,或者可选的去备份和恢复某一个部分内... 阅读全文