`
javasee
  • 浏览: 949997 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

书评--设计模式入门

阅读更多

个别问题的最佳解答

成熟的产业,应该有很多经典的设计,广为流传的想法,共通的价值。由于信息硬件突飞猛进,信息应用面快速深入所有环节,导致需求多样与设计复杂。在开发与使用软件时,我们期待各种问题的最佳解答。

十多年前,Erich GammaRichard HelmRalph JohnsonJohn Vlissides (由于太有名了,一般称之为四人帮 Gang of Four GoF)仿效建筑师 Christopher Alexander 为建筑找模式(Pattern) [1],让设计这种抽象行为,也有可效法的准则。GoF 则为软件设计找模式。

除去资源、经费、时程等外在因素,在评估团队或个人是否可以成事时,往往以知识、技能和实践力为考虑点。知识代表着广度与深度,是解决问题的潜能。技能是驾御平台、工具、程序语言等实质技术的熟悉度,实践力则看人格特质了。而模式可算是平日培养设计能力的基本知识,当对于你所碰到之特殊问题能提出适当的解法,就是技能了。

初探对象导向与设计模式

在此介绍一本好书:设计模式入门(Design Patterns Explained:A New Perspective on Object-Oriented Design[2]),此书并非像坊间其它介绍设计模式的书,以某种程序语言,如 C++JavaC#VB.NET 等,条列 GoF 提出的 23 种设计模式之程序写法,两位作者仅以简单的例子描述如何应用几个常见的设计模式,如:FaçadeAdapterBridgeAbstract FactoryStrategyDecoratorSingletonDouble-Checked LockingObserverTemplate MethodFactory Method 等。

本书的重点在于对象导向分析设计的入门与模式的应用,因此在章节设计上,是穿插对象导向的特征,再以数个模式搭配说明。并非全然的模式介绍,也非讨论对象导向分析设计与撰写的专书。

模式可以帮我们提升思考的层级,作者在书中举了一个例子,当两个木匠讨论如何将两块木板 90 度接合时,木匠一问到:是要采用「楔形榫头接口」,还是「45 度角斜接面」?

楔形榫头代表两块木板的周缘皆切割成许多小的锯齿,像拼图一般接合两块木板,这代表了美观、耐用与高质量,但成本也较高。而 45 度角斜接面仅是将两块木板的周缘各磨出 45 度的斜切面,这隐含了速成、简陋但刚好合用。而木匠以他们自己所熟知的模式在讨论时,有两个层次,一是真实的设计方式,另一个层次代表着质量与成本。而模式就是解决问题的经验,并可帮助提升思考的层次。

书中描述模式的方式是先提出问题,并直观地给予解答,而后再描述该解答的不足,接着套用模式重新设计解法,并辅之以程序代码和评析,最后重点提示并做个总结,反复地描述以加深印象。

本书是以 Java C++ 当作解说用的语言,但仅是点到为止,当作解说意念的一部份,毕竟模式的实作偏于抽象,仅是 UML(United Modeling Language)的类别图(Class Diagram)呈现关联,会令不熟悉 UML 的程序设计师难以揣摩,程序代码可以让我们较为踏实地感受其论述J

阅读建议

讨论设计的书向来都不好读,一则是抽象的东西不容易吸收,因为未亲身经历,很难领会其义。二则是其论述不一定在工作中立刻用得上,不如技术类的工具书,直接对应相关操作或撰写程序的问题。这类书适合有读书习惯,且深思熟虑的读者,面对问题不仅问 How,如何去解决。更有兴趣研究 What Why。然而,静得下来坐得住,这往往要靠时间焠炼。享受豁然开朗之乐,先需经验养成。

本书定位为入门书,一开始便讨论对象导向的基本特色,若不熟悉对象导向分析,或仅稍有认识,都可以透过第一章先了解基本名词的定义与优点,以及第二章的 UML 语言简介。其后,循序渐进地展开越来越复杂的设计,先后以 CAD/CAM 和销售系统 e-tail 为范例,解释结构性、行为性和创造性三类的模式。你可逐章阅读,赏析各个模式的特性。

本书所介绍的模式不多,在相关章节以实例说明该模式的用途后,皆会以模式语言(Pattern Language)或模式模板(template)做个重点提示。也就是以:目的、问题、解法、参与者与合作者、结果、实作等面向,描述该模式。并附上对 GoF 原著的参照页数。建议你有了概念后,透过此加深对该模式的认知。

最后,本书的译文有些许文字误谬,审校不够严谨。但无损于整体概念,对于传达技术本身并没有问题,或可不必计较这些瑕疵,着重于琢磨作者提供的分析经验。

相关阅读

本书的最后一章( 22 )即为参考数据,你可以作为延伸阅读的依据。另外,与本书的相关网址:http://www.netobjectives.com/dpexplained/。若你不欲购买本书,或可在该网站逛逛。

而关于设计模式的原始巨著:Design Patterns: Elements of Reusable Object-Oriented Software,作者 Erich GammaRichard HelmRalph JohnsonJohn Vlissides。出版社 Addison Wesley. October 1994。本书是众多书籍援引的经典J



[1] Pattern 的中译很多,如范式、样式,在此谨依照本书译者所使用的名词。

[2] 此书的英文版于 2004/10 已经有第二版了,可惜台湾祇有第一版的译本。

分享到:
评论

相关推荐

    书评-张海浪1

    【书评-张海浪1】:探讨2013年VR技术的崛起与未来展望 在2013年,虚拟现实(VR)技术开始崭露头角,引领了一场科技界的革命。这本书由张海浪撰写,深入剖析了当时VR技术的发展状况,以及它对各个领域可能产生的深远...

    书评-董飞1

    【书评-董飞1】 本文将探讨VR(虚拟现实)技术的发展、应用以及对未来的影响。虚拟现实,作为一项融合了3D图形渲染、计算机视觉、人机交互等多领域技术的前沿科技,正在逐步改变我们的生活方式,尤其在娱乐、教育、...

    设计模式:可复用面向对象软件的基础--详细书签版

     本书结合设计实例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。本书分类描述了一组设计良好、表达清楚的软件设计模式,这些模式在实用环境下特别...

    书评-儿童绘本类-《太棒了,我们的职业》.pdf

    在《太棒了,我们的职业》中,作者巧妙地设计了七大职业领域:服务行业、交通领域、工地与工厂、商业、学者和科学家、地下作业、艺术与表演领域。通过将每个职业领域内不同职业的人物形象和能表达职业特点的常见元素...

    Java毕业设计-基于jspm开发的大众书评网-附源代码和说明文档.rar

    “基于jspm开发的大众书评网”是一项精心打造的Java毕业设计项目,旨在为学生提供一个实战演练的平台,让他们通过开发一个完整的书评网站来深入理解和掌握Java Web开发的核心知识。项目不仅包含了完整的源代码,还...

    139-毕设-大众书评网-源码-视频讲解-LW-PPT.zip

    Abo开发说明 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 ...

    Head First Design Patterns 英文版

    《Head First Design Patterns》是一本在软件开发领域广受好评的设计模式入门书籍。本书由Kathy Sierra与Bert Bates共同编写,采用了一种独特而富有创意的教学方法,使得复杂的概念变得容易理解。书中通过丰富的插图...

    基于java的-238-大众书评网-源码.zip

    适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各...

    论文研究- 书评.pdf

    论文研究- 书评.pdf, 张国伍教授主编的《交通运输系统分析》一书是把交通运输作为系统对象来研究的一本专著。 全书共分三篇二十一章,从系统科学的论述开始,对交通系统进行系统分析,阐述了有关的基本理论和基本方法...

    自评-team18设计说明-问题清单1

    首先,我们来看“书评影评网站系统设计说明”,这是一个典型的Web应用开发案例,其目标是构建一个平台,用户可以分享和查看关于书籍和电影的评论。系统设计说明是整个开发过程中的重要文档,它详细记录了系统的架构...

    基于SSM框架的书评网完整源码(前端+后端)

    这个书评网项目使用了SSM框架,提供了从前端到后端的完整源码,非常适合学习和实践Java Web开发。下面将详细阐述SSM框架的组成部分以及在书评网项目中的应用。 **1. Spring框架** Spring是Java企业级应用的核心框架...

    【网站运营模式分析汇总】-豆瓣网运营模式分析.pptx

    1. **用户主导的内容生产**:豆瓣网鼓励用户生成内容,形成了丰富多样的书评、影评和乐评库,这种UGC(User Generated Content)模式让内容更加贴近用户需求,增强了用户的参与度和黏性。 2. **人际网络的构建**:...

    论文研究 - 书评:I-Cubed和

    自身免疫性大脑1解释了I-Cubed,... 最有效的方法是采用免疫调节(Ig)治疗的多模式治疗方法,该治疗方法不仅针对Cubed障碍的症状,而且还针对潜在的机制。 介绍了与莱姆病和PANDAS相关的感染后自身免疫的代表性病例。

    毕业设计项目---书评管理系统 前端后台.zip

    毕业设计开发的系统、项目,用于相关专业学生参考(设计资料+源码+使用说明) 毕业设计开发的系统、项目,用于相关专业学生参考(设计资料+源码+使用说明) 毕业设计开发的系统、项目,用于相关专业学生参考(设计...

Global site tag (gtag.js) - Google Analytics