摘要:/// <summary> /// 在Web Request期间只存在唯一实例的类 /// 使用了Lazy /// </summary> public class SingletonPerRequest { public object Data; public static readonly string Key = "SingletonPerRequest.Ke...
阅读全文
阿牛 - 专注.NET开发如果梦想与实现之间有一道不可逾越的鸿沟,那么“执行力”就是跨越这道鸿沟的桥梁。 |
|
随笔分类 - 深入浅出设计模式
深入浅出设计模式一书的读书笔记,和实践.
摘要:/// <summary> /// 在Web Request期间只存在唯一实例的类 /// 使用了Lazy /// </summary> public class SingletonPerRequest { public object Data; public static readonly string Key = "SingletonPerRequest.Ke...
阅读全文
摘要:#1: Open-Close printciple (OCP) Classes should be open for extension and closed for modification #2:Don't Repeat yourself (DRY) Avoid duplicate code by abstracting out things that are common and pla...
阅读全文
摘要:1. 看大问题最好的方法是:将它看作为小问题的集合 2. 和做小项目一样,大项目也是从收集需求开始的 3. 软件开发中的Feature通常代表着用户要求的一个功能, 程序员有时它也叫做"requirement" 4. 一致性和差异性可以让你(还有客户)很好的理解新系统和你们已经知道的东西. 5. 用例通常是很详细的,而用例图却可以让你以图像的形式理解需求, 得到一个大致的认识. 6. 用例图应该包...
阅读全文
摘要:什么是好的软件? 首先,它必须满足客户的要求,做客户想做的事情 然后,好的软件是经过良好设计,良好编码的. 容易维护,重用和扩展 换句话说,好的软件不只是满足了客户,还要"满足"程序员. 维护这个软件的程序员,不是你自己:) 怎么现实好的软件? 确保真正达到了客户的要求 应用基本的OO思想,OO设计原则以增加灵活性 应用设计模式或架构模式,以达到一个可重用,容易维护的目的.
阅读全文
摘要:接口型 外观模式(Facade,也有人叫门面模式,是不是有点俗?) 适配器模式(Adapter,在不同接口之间适配) 合成模式(Composite,用的不多) 桥接模式(Bridge,用的不多) 职责型 单件模式(Singleton,也有人叫单例,意思为单个实例) ...
阅读全文
摘要:.NET FCL中工厂方法的实例:枚举器 IEnumerable是工厂原型 IEnumerator是产品原型 List, ArrayList这些类都是建立产品的具体类,都实现了IEnumerable接口,有一个GetEnumerator()的方法返回IEnumerator 实现一个简单的工厂方法 using System; using System.Colle...
阅读全文
摘要:将变化的部份和不变的部份分离,以便于将变化的改动降到最小. 基于/针对接口(基类)编程,而不是具体实现编程,一看到new你应该想到的就是具体. 多用组合,少用继承.Has-A 优于Is-A 类应该对扩展开放,对修改封闭,也就是:开放-封闭原则 未完,继。。。
阅读全文
|