.NET设计规范:约定、惯用法与模式(第2版)(附光盘)(图灵程序设计丛书·微软技术系列)
分類: 图书,计算机与互联网,程序语言与软件开发,语言与开发工具,.net,
品牌: [美]Krzysztof Cwalina
基本信息·出版社:人民邮电出版社
·页码:370 页
·ISBN:9787115226518
·条形码:9787115226518
·版本:第1版
·装帧:其他
·开本:16开 Pages Per Sheet
·丛书名:图灵程序设计丛书·微软技术系列
产品信息有问题吗?请帮我们更新产品信息。
内容简介本书关注直接影响框架可编程能力的设计问题,为框架设计师和广大开发人员设计高质量的软件提供了权威的指南,这一版更新至.NET 3.5。书中内容涉及框架设计的基本原则和规范,常用设计惯用法,为名字空间、类型、成员等框架各部分命名的规范,框架中常用设计模式的规范等。同时,书中添加了来自经验丰富的框架设计师、业界专家及用户给出的评注,为书中的许多规范增色不少。 本书为框架设计师必读之作,也可用作.NET开发人员的技术参考书。
目录
目录 第1章概述1 1.1精心设计的框架所具备的品质2 1.1.1精心设计的框架是简单的2 1.1.2精心设计的框架设计代价高3 1.1.3精心设计的框架充满利弊权衡4 1.1.4精心设计的框架应该借鉴过去的经验4 1.1.5精心设计的框架要考虑未来发展4 1.1.6精心设计的框架应具有良好的集成性5 1.1.7精心设计的框架是一致的5 第2章框架设计基�7 2.1渐进框架9 2.2框架设计的基本原则12 2.2.1围绕场景进行设计的原则12 2.2.2低门槛原则18 2.2.3自说明对象模型原则22 2.2.4分层架构原则28 2.3小结30 第3章命名规范31 3.1大小写约定31 3.1.1标识符的大小写规则32 3.1.2首字母缩写词的大小写34 3.1.3复合词和常用术语的大小写36 3.1.4是否区分大小写37 3.2通用命名约定38 3.2.1单词的选择38 3.2.2使用单词缩写和首字母缩写词40 3.2.3避免使用编程语言特有的名字41 3.2.4为已有API的新版本命名43 3.3程序集和DLL的命名45 3.4名字空间的命名46 3.5类、结构和接口的命名50 3.5.1泛型类型参数的命名53 3.5.2常用类型的命名53 3.5.3枚举类型的命名54 3.6类型成员的命名56 3.6.1方法的命名56 3.6.2属性的命名57 3.6.3事件的命名58 3.6.4字段的命名59 3.7参数的命名60 3.8资源的命名61 3.9小结62 第4章类型设计规范63 4.1类型和名字空间65 4.2类和结构之间的选择70 4.3类和接口之间的选择73 4.4抽象类的设计79 4.5静态类的设计80 4.6接口的设计82 4.7结构的设计84 4.8枚举的设计86 4.8.1标记枚举的设计92 4.8.2给枚举添加值95 4.9嵌套类型97 4.10类型和程序集元数据98 4.11小结100 第5章成员设计101 5.1成员设计的通用规范101 5.1.1成员重载101 5.1.2显式地实现接口成员107 5.1.3属性和方法之间的选择110 5.2属性的设计115 5.2.1索引属性的设计117 5.2.2当属性发生改变时的通知事件119 5.3构造函数的设计121 5.4事件的设计128 5.5字段的设计134 5.6扩展方法136 5.7操作符重载142 5.7.1重载operator==146 5.7.2类型转换操作符146 5.8参数的设计147 5.8.1枚举和布尔参数之间的选择149 5.8.2参数的验证151 5.8.3参数的传递154 5.8.4参数数量可变的成员156 5.8.5指针参数159 5.9小结161 第6章扩展性设计162 6.1扩展机制162 6.1.1非密封类162 6.1.2受保护的成员164 6.1.3事件与回调函数165 6.1.4虚成员169 6.1.5抽象(抽象类型与抽象接口)171 6.2基类173 6.3密封174 6.4小结177 第7章异常178 7.1抛出异常182 7.2为抛出的异常选择合适的类型187 7.2.1错误消息的设计190 7.2.2异常处理191 7.2.3封装异常196 7.3标准异常类型的使用197 7.3.1Exception与SystemException198 7.3.2ApplicationException198 7.3.3InvalidOperationException198 7.3.4ArgumentException、ArgumentNullException及ArgumentOutOfRange-Exception199 7.3.5NullReferenceException、IndexOutOfRangeException及AccessViolationException199 7.3.6StackOverflowException200 7.3.7OutOfMemoryException201 7.3.8ComException、SEHException以及ExecutionEngine-Exception202 7.4自定义异常的设计202 7.5异常与性能203 7.5.1Tester-Doer模式204 7.5.2Try-Parse模式205 7.6小结206 第8章使用规范207 8.1数组207 8.2修饰属性208 8.3集合211 8.3.1集合参数213 8.3.2集合属性与返回值214 8.3.3数组与集合之间的选择218 8.3.4自定义集合的实现218 8.4DateTime和DateTimeOffset220 8.5ICloneable222 8.6IComparable与IEquatable223 8.7IDisposable225 8.8Nullable225 8.9Object226 8.9.1Object.Equals226 8.9.2Object.GetHashCode228 8.9.3Object.ToString229 8.10序列化231 8.10.1选择要支持的序列化技术232 8.10.2对数据协定序列化的支持233 8.10.3对XML序列化的支持237 8.10.4对运行时序列化的支持238 8.11Uri239 8.12System.Xml的使用241 8.13相等性操作符242 8.13.1值类型的相等性操作符243 8.13.2引用类型的相等性操作符243 第9章常用的设计模式244 9.1聚合组件244 9.1.1面向组件的设计245 9.1.2因子类型248 9.1.3聚合组件规范249 9.2Async模式251 9.2.1选择合适的Async模式251 9.2.2经典Async模式253 9.2.3Async模式的基本实现样例256 9.2.4基于事件的Async模式257 9.2.5对输出参数和引用参数的支持259 9.2.6对取消操作的支持260 9.2.7对进度报告的支持260 9.2.8对增量结果的支持262 9.3依赖属性263 9.3.1依赖属性的设计264 9.3.2附加依赖属性的设计266 9.3.3依赖属性的验证267 9.3.4依赖属性的改变通知268 9.3.5依赖属性的强制赋值269 9.4Dispose模式269 9.4.1基本Dispose模式272 9.4.2可终结类型277 9.5Factory模式281 9.6对LINQ的支持285 9.6.1LINQ概要285 9.6.2支持LINQ的几种方法286 9.6.3通过IEnumerable来支持LINQ287 9.6.4通过IQueryable来支持LINQ287 9.6.5通过Query模式来支持LINQ288 9.7Optional Feature模式291 9.8Simulated Covariance模式294 9.9Template Method模式299 9.10超时301 9.11可供XAML使用的类型303 9.12结束语305 附录AC#编程风格约定306 附录B通过FxCop来实施设计规范313 附录CAPI规格书样例343 术语表350 推荐读物354 索引356
……[看更多目录]