(导读 III)
作为面向对象基础设计原则的忠实体现,设计模式帮助我们在学习过程中不断强化以下五项原则性设计:
1. 单一职责原则 (SRP) —— 一个类应该有且仅有一个引起变化的因素;
2. 开放封闭原则 (OCP) —— 对扩展开放,对修改封闭;
3. Liskov 替换原则 (LSP) —— 子类可以替换为它的基类;
4. 依赖倒置原则 (DIP) —— 高层模型不应该依赖于低层模块,二者都应该依赖于抽象。抽象不应该依赖于细节。细节应该依赖于抽象;
5. 接口隔离原则 (ISP) —— 一个类对另外一个类的依赖建立在最小的接口上;
(导读 VII) 行为型模式关注与运行过程中算法的提供和通信关系的梳理;
(P18)
如果代码将被反复重用,只要进度允许,尽量用泛型:
1. 省去 Cast 过来 Cast 过去,提高了效率;
2. 抽象给代码带来更多适应性;
3. 减少接口和参数的歧义;
(P80) 工厂方法地的意图非常明确,它把类的实例化过程延迟到子类,将 new() 的工作交给工厂完成;
(P184)
适配器主要有三个作用:
1. 完成旧接口到新接口的转换;
2. 将“既有系统”进行封装,逻辑上客户程序不知道“既有系统”的存在,将变化隔离在 Adapter 部分;
3. 如果客户程序需要迁移,仅需要在 Adapter 部分做修改;
(P187) 如果在一开始学习的时候就有人提示一下多好;
(P260) “用面向对象思想设计的应用常常会面临对象实例过多的问题。”
(P276) 外观模式是屏蔽复杂性的,很多时候代理模式的控制本身也就是对各种复杂性的屏蔽,只不过外观处理的是一个逻辑上的“子系统”,而且其封装后的结果并没有具体抽象接口的要求,但在代理模式中客户程序需要的接口明确化了;
(P415) 同样是排序算法,考虑到 CPU 和内存容量的不同, 在手机和在PC计算机上可能采用不同的排序算法;
(P418)
排序算法选择:
1. 实现简单 —— 冒泡排序策略;
2. 比较快速地对小数据量进行处理 —— 快速排序策略;
3. 大数量 —— 外排序;
(P445) ORM —— Object —— Relation Mapping ;
(P457)
—— DataSet的优势:——
1. 使用 offline 的内存数据库;
2. 可以装载多个 DataTable;
3. 与 XML 的天然集成;
4. 有比较完善的内存数据筛选、查询机制;
5. 同时可以维护多个数据对象间的关联关系;
6. 尤其对于两层的数据应用而言,提供了完善的数据使用周期支持;
—— DataSet的劣势 ——
1. 数据的业务语义不甚清晰,客户程序必须了解字段的组成才能提取字段项;
2. 传输中有很多“冗余”的信息在传递;
3. 弱类型的数据结构在开发过程中不如强类型的数据实体使用方便;
4. 容量有限制;
5. 并非标准的数据结构,在 WS-* 调用中考虑到互操作性要求,需要必要的转换;
(P462) GOF 给我们最大的启示就是把紧密引用在一起的对象通过抽象或增加第三个对象的办法拆解得更加松散;
(P482) 模式的使用都是针对某些特定变化而引入的;
(P495)
MVC 模式设计是 M 相对 V 稳定的基础上考虑的,但如果 M 本身相对 V 变化更快, MVC 模式的应用效果就会打折扣。它的主要优势在于同一 M 可以支持很多不同的 V ,而且会通过观察者模式或 C 协助 V 完成信息的更新,但它也同样存在劣势:
1. 对于 V 相对单一或简单的情况而言,MVC 本身引入了更多的复杂性;
2. 更新的成本相对增加了,原本可以在一个方法中完成的更新要被分拆为 M/V/C 三类对象的协作;
(P499) “管道 - 过滤器”(Pipeline - Filters) 模式是一种通过组织一系列连续过滤条件完成既定处理的模式;
(P563) “高层模块不应该依赖于低层模块,二者都应该依赖于抽象。抽象不应该依赖于细节,细节应该依赖于抽象。”
(P570) .NET 3.0 之后对于远程调用技术集中到 WCF 框架下;
(P574) WCF 其实在用面向对象化的方式解决面向服务的开发问题;
(P628) 在领域驱动设计中 (DDD : Domain Driven Design) 中,实现业务逻辑层主要有 Transcation Script、Domain Module 和 Table Module 三种模式;
(P644) 不兼容接口间适配器 (Adapter) 是个不错的途经;
分享到:
相关推荐
摘要:电子书籍,C#教程,设计模式 设计模式:基于C#的工程化实现及扩展 pdf全书下载,本书作者以C#重新实现了GOF的模式,同时加入了新近的设计想法,如SOA与Web Services.....等,同时还有相对于其他设计模式而言较新...
设计模式:基于C#的工程化实现及扩展
《设计模式:基于C#的工程化实现及扩展》是一本深入探讨软件设计与开发的专著,由王翔撰写,主要围绕C#编程语言展开。设计模式是软件工程中的重要概念,它代表了在特定情境下解决问题的可重用方案,能够帮助开发者...
《设计模式--基于C#的工程化实现及扩展》是一本深入探讨软件设计模式的书籍,作者王翔通过C#语言来阐述各种设计模式的工程化应用和拓展。设计模式是软件开发中的一种最佳实践,它总结了在特定场景下解决常见问题的...
《设计模式:基于C#的工程化实现及扩展》是一份深入探讨软件设计模式的宝贵资源,它提供了C#语言下的具体实现与扩展,旨在帮助开发者提升代码的可读性、可维护性和可复用性。这个压缩包包含了多个源码文件,分别命名...
### 设计模式——基于C#的工程化实现及扩展 #### 概述 本书旨在向读者展示如何利用C# 2.0语法有效地实现和应用设计模式,使其不仅仅局限于简单的例子,而是能够在实际工程项目中发挥重要作用。全书分为七个部分,...
690页完整的《设计模式:基于C#的工程化实现及扩展 》王翔著作 pdf版
本资源"设计模式 基于 C# 工程化实现及扩展Code"聚焦于如何在C#编程环境中应用这些模式,并结合工程化实践进行深入探讨。 1. **单例模式**:确保一个类只有一个实例,并提供一个全局访问点。在C#中,可以使用`密封`...
《设计模式--基于C#的工程化实现及扩展》是一本深入探讨软件设计模式的书籍,作者王翔通过C#语言来阐述各种设计模式的工程化应用和拓展。设计模式是软件开发中的一种最佳实践,它总结了在特定场景下为解决常见问题而...
《设计模式:基于C#的工程化实现及扩展》是由王翔编著的一本深入探讨设计模式在C#编程中的应用的专业书籍。这本书的核心在于如何将经典的23种设计模式有效地融入到C#的工程实践中,同时探讨了如何对这些模式进行扩展...
设计模式_基于C#的工程化实现及扩展 电子书 第一部分
微软示例数据库脚本可能用于配合某些设计模式的实现,例如数据访问层的设计,而设计模式——基于C#的工程化实现及扩展_示例说明.txt则会详细解释这些示例代码的工作原理和设计思路。 通过学习和实践这些设计模式,...
《设计模式--基于C#的工程化实现及扩展》是一本深入探讨软件设计模式的书籍,作者王翔通过C#语言来阐述各种设计模式的原理、应用及其在实际工程中的扩展。这本书对于C#开发者来说,是提升软件设计能力的重要参考资料...
《设计模式--基于C#的工程化实现及扩展》是由王翔编著的一本深入探讨设计模式在C#和.NET平台应用的专业书籍。设计模式是软件工程中的宝贵经验总结,它们提供了解决常见问题的标准解决方案,是提升代码可读性、可维护...
设计模式——基于C#的工程化实现及扩展(二) 设计模式——基于C#的工程化实现及扩展(二)
设计模式——基于C#的工程化实现及扩展(一)
本资料"设计模式-基于C#的工程化实现及扩展"着重探讨如何在C#编程环境中高效地应用设计模式,并对其进行工程化的实现和扩展。 在C#中,设计模式的应用有助于提升代码的可读性、可维护性和可扩展性。常见的设计模式...
《设计模式——基于C#的工程化实践及扩展》相关的源码 ,这是一本讲设计模式的很好的书, 作者有深厚的功底, 从汇编到C++ ,再到C#/Java 等 ,并结合的思想 Martin Fowler的思想 ,对设计模式做了深刻的思考.
以上只是部分设计模式的概述,实际的《设计模式:基于C#的工程化实现及扩展》可能会涵盖更多内容,如模板方法模式、职责链模式、组合模式等,并详细介绍如何在实际项目中有效应用这些模式。为了获取完整的资料,您...