基本信息
编辑推荐
一部深入讲解设计模式的重点著作
一部致力于融合分散模式知识的重要书籍
内容简介
计算机书籍
设计模式不是一门适合空谈的技术,它来自于开发人员的工程实践又服务于工程实践。
《模式——工程化实现及扩展(设计模式C#版)》并不是一本面向入门者的读物,因为它需要结合工程实践介绍如何发现模式灵感、如何应用模式技术。不过作为一本介绍设计模式的书,它并不需要读者对于庞大的.NET Framework有深入了解,因为扩展主要是结合C#语法完成的,配合书中的实例,相信读者不仅能够熟练应用设计模式技术,也能令自己的C#语言上一个台阶。
为了降低学习门槛,本书第一部分除了介绍面向对象设计原则外,还充实了一些C#语言的介绍,但这些内容并不是枯燥的讲解,读者可以在阅读中通过一系列动手练习尽快吸收这些理论,并将它们转化为自己的技能。本书最后一部分的“GOF综合练习”把各种设计模式进行了一次集中展示,目的是让读者把分散的模式知识融合在一起,能够将书本知识真正用于改善一个“准”生产型模块的实现。
《模式——工程化实现及扩展(设计模式C#版)》内容生动,示例贴近中型、大型项目实践,通过一个个“四两拨千斤”的示例练习可以让读者有一气读完的兴趣。
目录
第一篇 预备知识—发掘C#语言的面向对象设计潜力 1
第1章 面向对象设计原则 2
1.1 说明 3
1.2 单一职责原则(SRP) 4
1.3 里氏替换原则(LSP)和依赖倒置原则(DIP) 7
1.4 接口隔离原则(ISP) 8
1.5 迪米特法则(LoD:Law of Demeter、LKP) 9
1.6 开闭原则(OCP) 11
1.7 小结 15
1.8 自我检验 15
第2章 重新研读C#语言 16
2.1 说明 17
2.2 C# 部分语法内容扩展 18
2.2.1 命名空间(Namespace) 18
2.2.2 简洁的异步调用机制——委托(Delegate)和事件(Event) 21
2.2.3 考验算法的抽象能力——泛型(Generics) 29
2.2.4 用贴“标签”的方式扩展对象特性 35
2.2.5 可重载运算符(Overloadable Operators)与转换运算符(Conversion Operators) 38
2.3 面向插件架构的配置系统设计 41
前言
项目中,我们固然可以机械地将一种语言的开发经验套用到另一种语言,但效果不一定好,因为
语言有自己的短处:用短处去实现不仅费时费力,结果也不理想。
语言有自己的长处:但为了沿用以前的经验削足适履,没有用到语言的精要,结果暴殄天物。
相信读者也发现了,用一个语言写Hello World是一回事,写一个应用是一回事,写好一个应用则完全是另一回事,这就是工程化代码和“玩具”代码的区别。教科书上的知识落实到工程上时不能按图索骥,需要考虑开发语言和目标环境,设计模式也不例外。
也许读者会觉得本书很多实现方式与《设计模式》介绍的内容不一致,但别忘了《设计模式》一书出版至今已近20年,其间无论是开发语言还是技术平台已经“换了人间”,GOF 23个模式的思想不仅影响着我们,更影响着走在技术前沿的语言设计者、平台设计者。他们也在工作中潜移默化地把模式思想融入自己的工作成果。作为用户,如果我们“推却”别人的盛情,所有事情都从“车轮”做起,多少有点不经济。
作为本系列的C#设计模式分册,我试图用最C#的方式将自己对于设计模式的理解呈献给读者,而且实现上务求简洁、直接。结构上,本书分为以下5个部分。
第一部分,预备知识
包括面向对象设计原则中“面向类”的部分、C#语言面向对象扩展特性,以及Java和C#语法特性的简单对比。
第二部分,创建型模式
主要介绍如何创建对象,如何将客户程序与创建过程的“变化”有效隔离。
第三部分,结构型模式
从静态结构出发,分析导致类型结构相互依赖的原因,通过将静态变化因素抽象、封装为独立对象的办法,梳理对象结构关系。
第四部分,行为型模式
从动态机制出发,分析导致类型调用过程的依赖因素,通过将调用关系、调用过程抽象、封装为独立对象的办法,削弱调用过程中的耦合关系。
第五部分,GOF综合练习
为了便于读者从整体上体会模式化设计思路和实现技巧,这部分通过一个综合性的示例向读者展示如何发现变化、抽象变化、应用模式并最终结合.NET Framework平台特性加以实现的过程。
不管读者之前对于模式是否有所尝试,我希望读者不妨浏览这章,毕竟模式思想转化为模式设计思路,再转化为模式应用技巧是一个渐进的过程,必须实际动手才会加深印象,然后才可能进一步开阔思路。本章示例设计上变化因素较多,需要三类模式的综合运用,务求能起到抛砖引玉的效果。
感谢多年培养、帮助我的领导和同事们,多年富有挑战、共同拼搏的项目经历使我能够完成这本书。
感谢我和我妻子共同的父母,您们一直给予我无私的关心和照顾,还教会我学会从生活中发掘无穷的技术灵感。
媒体评论
——胡百敬 微软MVP,台湾恒逸资讯资深讲师, “数据库铁人”
作者从GOF 23种经典设计模式开始,带你走进模式的大门,小到细粒度的基础模式,大到粗粒度的架构模式,本书都做了详尽的讲解。如果您还在为了软件需求的无尽变化而烦恼不断,为了在软件设计领域更上一层楼而苦苦思索,希望本书能够带给您一些启发。
——李会军 微MVP,博客园专家,ITl68专栏作者
本书很有特色的地方,就是以工程角度来阐释模式,相较纯粹的模式之说,则更具普遍的下手角度,C#语言的高级特性结合设计模式的经典思想,两者相得益彰。
——王涛 微MVP,博客园专家, 《你必须知道的.NET》作者