
| “给我一个支点,我就能撬起地球”,关键不在于力量有多大,而在于如何合理地利用力量。 软件设计同样如此,思想的确立,技巧的把握,将在很大程度上制约软件架构的合理性。本书力图通过大量的项目实践,并与软件设计思想完美结合,充分展示软件设计之美,以及设计“力量”的巧妙运用。 |
| 张逸,软件架构师,敏捷教练,微软最有价值专家,InfoQ.NET丰土区常务编辑,msup资深讲师。目前担任中软国际ETC(重庆)技术总监。主要专注于软件架构、设计模式、领域驱动设计和敏捷开发,以及基于.NET平台的企业级系统应用开发和分布式开发。曾先后为可口可乐、摩托罗拉、HP、京东方、尼桑、摩洛哥电信、盛大、第九城市、CA、携程等企业提供设计、开发、咨询与培训服务。他的著译作包括《软件设计精要与模式》、《WCF服务编程》。 |
| 第1篇 设计之要 第1章 设计之道 1.1 计划的设计与演进的设计 1.2 架构的标准 1.3 过度设计,还是简单设计 1.4 需要设计模式吗 1.5 重构是必然的 1.6 uml重要吗 1.7 测试驱动开发 第2章 对象法则 2.1 面向对象思想 2.2 面向对象核心要素 2.2.1 封装 2.2.2 继承 2.2.3 多态 2.3 面向对象设计原则 2.3.1 单一职责原则 2.3.2 开放封闭原则 2.3.3 liskov替换原则 2.3.4 依赖倒置原则 2.3.5 接口隔离原则 第3章 封装变化 3.1 设计模式之鹄的 3.2 如何封装变化 3.2.1 封装对象行为的变化 3.2.2 封装对象创建的变化 3.2.3 封装对象结构的变化 3.3 解耦具体依赖 3.3.1 配置文件与反射技术 3.3.2 表驱动法 3.3.3 惯例优于配置 3.3.4 依赖注入 第4章 体验重构 4.1 一个阶乘容器 4.2 代码的坏味道 4.3 需求发生变化 4.4 运用重构利器 4.5 引入设计模式 第5章 测试驱动开发 5.1 发现价值与生产价值 5.2 运用面向对象编程思想 5.3 适时小结 5.4 收获价值 5.5 无上之力 第2篇 .net框架与设计模式 第6章 .net中的工厂方法模式 6.1 “嫁祸江东”之计 6.2 webrequest对象的创建 6.3 改造工厂方法模式 6.4 实现良好的可扩展性 6.5 惯例优于配置 第7章 .net中的合成模式 7.1 字处理软件 7.2 .net框架中的控件 7.3 “复合方式”的合成模式 第8章 .net中的装饰器模式 8.1 一步一步走向装饰器模式 8.2 .net框架中对流的处理 第9章 .net中的迭代器模式 9.1 分辨对象的职责 9.2 实现迭代器模式 9.3 迭代器模式大观园 9.4 迭代器模式在.net框架中的实现 9.5 通过yield return实现迭代器 9.6 c# .0对迭代器模式的支持 第10章 .net中的策略模式 10.1 税务系统 10.2 利用委托实现策略模式 10.3 .net框架中的provider对象 第11章 .net中的命令模式 11.1 考勤管理系统 11.2 命令模式在wf中的运用 11.3 合成模式与命令模式的结合 第3篇 媒体播放器的设计之旅 第12章 面向对象与接口分离 12.1 拙劣的设计 12.2 面向对象设计 12.3 接口分离 12.4 解除具体依赖 第13章 接口行为的适配 13.1 新的应用场景 13.2 “狼”与“羊”的关系 13.3 引入适配器模式 13.3.1 类的适配器模式 13.3.2 对象的适配器模式 13.4 适配器模式比较 第14章 接口行为的扩展 14.1 设计走向死胡同 14.2 考察适配器模式 14.3 引入访问者模式 14.4 非循环访问者模式 14.5 合理运用访问者模式 第15章 接口行为的装饰 15.1 不断变化的需求 15.2 考虑代理模式 15.3 引入装饰器模式 第4篇 设计模式应用实践 第16章 抽象工厂模式应用 16.1 报表组件 16.2 糟糕的设计 16.3 引入抽象工厂模式 16.4 工厂对象的使用 16.5 引入策略模式和桥接模式 16.6 适配器模式扩展抽象工厂结构 16.7 接口还是抽象类 第17章 建造者模式应用 17.1 装配设备对象 17.2 糟糕的设计 17.3 引入建造者模式 17.4 从容应对扩展 第18章 命令模式应用 18.1 安装向导 18.2 糟糕的设计 18.3 引入命令模式 18.4 进一步完善 18.5 分辨对象职责与变化 第19章 职责链模式应用 19.1 员工培训系统 19.2 设计模型 19.3 设计的重构 19.4 职责链模式 第20章 观察者模式应用 20.1 监控设备状态 20.2 引入观察者模式 20.3 事件与委托改进观察者模式 第21章 代理模式应用 21.1 显示设备控件 21.2 引入代理模式 21.3 完善设计 第22章 设计模式综合应用 22.1 话单转换工具 22.2 糟糕的设计 22.3 面向对象的设计思想 22.4 引入策略模式 22.5 需求发生变化 22.6 引入模板方法模式 22.7 合理的设计才是最好的设计 22.8 引入桥接模式 22.9 分离接口 22.10 引入抽象工厂模式 第5篇 .net体系架构 第23章 软件体系架构 23.1 分层架构模式 23.2 分层架构模式之优劣 23.3 petshop的架构版本演化 23.4 petshop .0的系统架构 第24章 数据访问层 24.1 数据库样式 24.2 数据对象 24.3 sql语句之瘤 24.4 运用orm的思想 24.5 资源库模式与工作单元模式 24.6 事务的处理 24.7 具有简单工厂特质的抽象工厂模式 24.8 服务定位器模式 第25章 消息处理 25.1 msmq的实现 25.1.1 消息处理模块的组成 25.1.2 消息接口 25.1.3 消息接口的实现 25.1.4 消息工厂 25.1.5 后台处理应用程序 25.1.6 引入策略模式 25.2 分布式处理 第26章 asp.net缓存 26.1 asp.net缓存概述 26.2 sqlcachedependency特性 26.2.1 利用aspnet_regsql工具 26.2.2 利用sqlcachedependencyadmin类 26.3 asp.net缓存在petshop .0中的实现 26.3.1 cachedependency接口 26.3.2 cachedependency实现 26.3.3 cachedependency工厂 26.3.4 引入门面模式 26.3.5 引入代理模式 第27章 业务逻辑层 27.1 与领域专家合作 27.2 业务逻辑层的模式应用 27.3 petshop的业务逻辑层 27.4 与数据访问层的通信 27.5 面向接口设计 第28章 表现层 28.1 页面控制器模式 28.2 用户管理 28.2.1 profile特性 28.2.2 membership特性 28.3 asp.net控件 28.3.1 自定义控件 28.3.2 用户控件 28.3.3 登录控件 28.3.4 master page 28.4 mvc模式 28.5 表现层的演变 参考文献 |
商品评论(0条)