OOAD、UML、设计形式,市面上关于设计方式的书还比较少

 

驷不及舌字:OOAD、UML、设计情势

原帖:怎么读关于设计方式的那几本书

《设计形式》(GOF):不引进初我们看。这四个人都是Phd级别,就是他们第叁提议了设计情势,理论水平高,即便薄薄一本,可是文字相对晦涩,也不够不难精晓的事例。等您到自然水准了,有趣味的话可以看一下。

各位园友,我们好,笔者是Bobby,在念书OOAD和支出的档次的进度中有一部分觉醒和设法,整理和编制了一部分就学材质


《Head
First设计情势》:好书,里面的事例生活化,而且尤其端庄,读起来相比较有意趣,一步一步推进,逻辑上也很显著。
书中语言使用的是Java。
假设您不被它的切近700页的厚薄吓到的话,属于入门的好书。缺点是不够实际工程实践的事例,不过对于你入门,对各类设计格局有个初阶的理解,是很有实益的。那本书是自身向学员首推的一本有关设计格局的书。

【内容简介】
支配某种开发语言,让你达成了由零到一的脱变,若是您能左右OOAD并能活用OOAD,则能让你兑现由一到十的相当的慢!知道OOAD的人居多,能在骨子里工作中用好OOAD的人却不多,本书为你享受小编十多年来实施OOAD的心得体会,学会活用OOAD来升高须要分析及软件设计的力量,学会活用OOAD由需要到统筹全程建模。
正就如,技术是条永无止境的路,每一种人必须不断更新才能保持充实;《OOAD与UML那一点儿事》并不是一本万能大百科,那里没有具备难点的答案,可以化解您身边首要的迷离,就曾经是自家乐意的靶子了。从专题入手,将3个个主要、难点和疑问从浓密角度抓住本质。

境内当下亦可找到的关于设计情势的书根据出版时间排列有以下几本(含点评):

《大话设计情势》(程杰):在今年自个儿刚接班《软件架构与设计方式》那门课的时候,市面上关于设计情势的书还相比较少,国内小编出品的同类书籍更少,那本书属于最有名的一本。
书中利用的言语是C#。
前几章介绍了一下OOP/OOD的几个焦点条件,假若你对OOP/OOD中的接口,继承,多态这几个概念不是很清楚(大概只是通晓概念,不知底怎么使用的话),能够挑选那本书。个人感觉(不自然对),那本书在很大程度上效仿了《Head
First》的创作风格,可是多少为了举例而举例的感觉到,有些例子比较牵强,无助于精通,反而有只怕造成误解。行文上好什么时候候为了有趣而有趣,效果也不佳。此外也基本没有在工程举行中的应用。总体来说,不如《Head
First》。

平抑能力简单,某个不在意的谬误在所难免,那里的敌人们,若是发现其他不当与不当,烦请及时反馈给作者,那是最大的支撑和鞭策。

  • GoF的《设计方式》一九九三年英文版出版,两千.09普通话版出版
    法师之作,经典小说,言必有中,总结充裕。可惜普通话版翻译品质很低,有个别句子不通畅,好像是机械翻译的,有独家难译的句王叔比干脆没有翻译(如Chain
    of responsibility一章的适用性一节的and the handler isn’t known a
    priori.这一句就从未有过翻译),其它代码是C++的,较难懂;还有就是出版时间较早,实例代码对于明日境内的运用开发非常小实用。

  • 《Java与模式》2002.10出版
    同胞早期的设计格局的书本,勇气可嘉,不过头几章试图用中国的思想意识文化演讲设计形式的道理,令人倍感云里雾里的,加深了对设计方式的神秘感,相当的慢就免去了翻阅的心思

  • 《Head First设计格局》二零零二.10英文版,二〇〇五.09普通话版
    创建了设计格局通俗读物的判例,老外们很欣赏,粤语版翻译得也不易,用Java写的代码,可是觉得其中的事例(比如披萨的创设)相当的小和国人的饭量,其余某个人不喜欢书里卡通的作风

  • 《大话设计模式》二〇〇六.12出版
    创办了国内设计情势通俗读物的前例,用C#写的代码,感觉其中一些例证一点都不大实用和方便,比如学雷锋和追女孩。

  • 《设计格局之禅》2008.03问世
    撰写活泼,深入浅出,别有天地,包涵了大气的和较新的施用Java灵活运用设计方式的阅历,用Java写的代码,代码短小精悍,但多少例子相当的小实用和适量,如帝女造人。

  • 《研磨设计情势》二〇〇八.11出版
    文风绝对来说较严酷,同样带有了大气的和较新的行使Java灵活运用设计格局的阅历,用Java写的代码,代码越来越多地取材于实际的连串,尤其实用。

《设计形式》(刘伟先生,南开大学出版社):那本书出来的相比新,说实话作者都没读过。不过那本书的永恒就是作为设计情势的入门教材,加上清华大学出版社的旗号,品质照旧尤其有保持的。通过自小编对此书配备的PPT,以及小编网站(刘伟(Liu-Wei)技术博客
,上边有许多百般好的始末,不仅限于设计方式)的问询,此书应该如故很吻合初学者入门之用,里面也有无数实在工程中的例子可供参考。不过限于篇幅,书中的内容更偏重于对设计格局本人的任课。我还推出了任何几本书,如和此书配套的《设计情势实训教程》,不过小编没读过,所以就不评说了。其余还有《C#设计方式》和《
设计形式的办法——软件开发人员内功修炼之道
》(此书从书名来看,应该更近乎于工程实践中的应用)。


设计格局篇

设计方式的求学开支较高,在少数的时辰里,感觉使用上边的方法可以最大限度的加速学习的步子(适用于Java程序员):

《设计形式:基于C#的工程化完毕及扩张》(王翔):若是你对设计形式有了一定的垂询,与此同时想要在工作中使用设计形式的话,那本书是自作者最推荐的一本书。从书中就足以看出,我具有相当充分的工程实践经验,而且不像一些技术人士,他的文字功底也很好,逻辑思考十分清晰,若是身处大学软件大学里,上个相关的硕士教程应该小难题。而且书中的内容不仅限于介绍GOF的经典设计形式,更强调它们之间的融合,并介绍了其他的一对设计格局,其中有关举行应用的各样案例可怜可怜可怜有参考价值。


  1. 先通读《设计形式之禅》,撤除设计情势的神秘感,读完后,有时间,还足以翻阅《研磨设计格局》
  2. 再阅读GoF的《设计形式》(有规范可以直接阅读英文版),可以不关心其中C++的代码,而关键关切该书对各个格局的概念上的牵线和总结相比,特别关心首先章引言,各个设计方式的企图、适用性、结构类图、时序图、加入者、合营、效果和血脉相通情势,第5章结论,图1-1设计情势之间的涉及,1.6.7节促成重新规划的形似原因总结,表1-2设计方式所支持的陈设性的可变方面的汇总,1.7怎么着选用设计格局,1.8怎么使用设计格局。
  3. 再利用《设计格局之禅》或《研磨设计格局》的相关Java实例代码,结合GoF的布局类图,找出Java代码中的参预者,便于纪念

《设计情势之禅》与《研磨设计格局》:那两本书都没有仔细通篇看过,而且风格与一定都类似,所以放在一块儿介绍了。那两本书的风味都以我先在温馨的博客上发布了一些有关设计形式的篇章,然后再整理起来成为了一本书。就算临时半会找不到书只怕不想买的话,可以到网上搜寻他们的博客。就自个儿读过的章节来说,小编相对地更加推荐《研磨设计格局》那本书,每个设计形式都配有怎样在工程中运用的可怜详尽的上课,并会对经典的设计格局有三个恢弘,找的事例也愈来愈方便一些。假如你已经对设计形式的基本概念有了询问,想要进一步深远的话,推荐《研磨设计格局》,固然你以为还想进一步壮大对于有个别格局的垂询,可以再合营着看一下《设计格局之禅》。《设计方式之禅》,他用浅显易懂的代码讲了解道理,之所以讨厌《大话设计情势》,是因为她尝试用编可笑的故事来品尝让自家掌握,让自家以为笔者严重低估了读者的智慧

  1. 【OOAD】OOAD概述
  2. 【OOAD】OOP的严重性特征
  3. 【OOAD】面向对象设计条件概述
  4. 【OOAD】设计情势概述
  5. 通俗设计格局——简单工厂方式(Simple
    Factory)
  6. 浅显设计方式——工厂方法形式(Factory
    Method)
  7. 深刻浅出设计模式——抽象工厂方式(Abstract
    Factory)
  8. 通俗设计方式——建造者格局(Builder
    Pattern)
  9. 初始设计形式——原型方式(Prototype
    Pattern)
  10. 通俗设计格局——单例形式(Singleton
    Pattern)
  11. 浅显设计形式——适配器情势(艾达pter
    Pattern)
  12. 深远浅出设计形式——桥接格局(Bridge
    Pattern)
  13. 浅显设计方式——组合形式(Composite
    Pattern)
  14. 初始设计形式——装饰形式(Decorator
    Pattern)
  15. 通俗设计形式——外观方式(Facade
    Pattern)
  16. 初叶设计形式——享元方式(Flyweight
    Pattern)
  17. 深远浅出设计格局——代理方式(Proxy
    Pattern)
  18. 浅显设计方式——义务链情势(Chain
    of Responsibility
    Pattern)
  19. 初叶设计形式——命令情势(Command
    Pattern)
  20. 通俗设计方式——解释器形式(Interpreter
    Pattern)
  21. 浅显设计方式——迭代器情势(Iterator
    Pattern)
  22. 深切浅出设计情势——中介者方式(Mediator
    Pattern)
  23. 浅显设计格局——备忘录格局(Memento
    Pattern)
  24. 早先设计格局——观察者情势(Observer
    Pattern)
  25. 通俗设计形式——状态形式(State
    Pattern)
  26. 初始设计格局——策略形式(Strategy
    帕特tern)
  27. 深刻浅出设计情势——模板方法方式(Template
    Method
    Pattern)
  28. 浅显设计格局——访问者格局(Visitor
    Pattern)

简单来讲,用GoF对于设计格局概念的讲演和总结,结合《设计方式之禅》和《研磨设计情势》的Java的事例来学学,会让思绪更清楚,学习效果更好。

*
总括:笔者的引进列表如下:
入门(《Head
First设计方式》/《设计情势》(刘伟同志)+《设计格局实训教程》(刘伟先生))→进阶(《研磨设计方式》/《设计格局之禅》)→应用(《设计形式:基于C#的工程化完成及扩展》)→理论抓实(GOF《设计格局》)

格局实例与分析 示例代码下载

*

【参考文献】

*每年面试应届结业生的时候和她们聊着他俩会点什么,聊到设计格局的时候他俩总会似懂非懂地说上一堆.
本人不是满不在乎恐怕是说设计格局没用,小编是坚持地认为,设计形式卓殊有用,以至于当您变成大牛现在,可以和人聊架构的时候,像你那般,说上一大堆Spring哪个模块用了哪个设计情势.
那约等于本人的答问里面的第1点:反而变成装逼吹水的谈资。 

  • 《设计模式—可复用面向对象软件的底蕴》作者: [美] 埃里克h Gamma /
    Richard Helm / 拉尔夫 Johnson / John Vlissides 译者: 李英军 / 马晓星
    / 蔡敏 / 刘建中 等 机械工业出版社
  • 《重构—革新既有代码的安顿》小编: 马丁 Fowler译者:候捷
    中国电力出版社
  • 《敏捷软件开发—原则、情势与实施》小编: 罗伯特 C. Martin南开大学出版社
  • 《程序员修炼之道—从小工到我们》小编: Andrew Hunt / 大卫 托马斯电子工业出版社
  • 《Head First 设计情势》作者: Freeman 译者: O’Reilly Taiwan集团中国电力出版社
  • 《设计情势之禅》 小编: 秦小波 机械工业出版社
  • MSDN WebCast 《C#面向对象设计形式纵横谈》 助教:李建忠
  • 刘伟同志. 设计格局. 巴黎:南开高校出版社, 二零一二.
  • Liu Wei. 设计方式实训教程. 东京(Tokyo):哈工大高校出版社, 2013.
  • 《大话设计格局》 我: 程杰 哈工大高校出版社
  • 《C#图解教程》小编: 索Liss 译者: 苏林 / 朱晔 人民邮电出版社
  • 《你必须明白的.NET》我: 王涛
  • 《项目中的.NET》作者: 李天平 电子工业出版社
  • 《Microsoft .NET集团级应用架构设计》我: (美)埃斯波西托等撰写
    译者: 陈黎夫
  • http://www.dofactory.com/Patterns/Patterns.aspx .NET Design Patterns
  • http://www.cnblogs.com/zhenyulu 博客小编:吕震宇
  • http://www.cnblogs.com/terrylee 博客作者:李会军
  • http://www.cnblogs.com/anlyren/ 博客小编:anlyren
  • http://www.cnblogs.com/idior 博客作者:idior
  • http://www.cnblogs.com/allenlooplee 博客小编:Allen lee
  • http://blog.csdn.net/ai92 博客作者:ai92
  • http://www.cnblogs.com/umlonline/ 博客小编:张传波
  • http://www.cnblogs.com/lovecherry/ 博客小编:LoveCherry

那就是自己答应里面的率先句话: 不会设计格局,你连逼都装不起.

 

您是还是不是已经厌倦了关于贫血模型和充血模型的座谈,
软件设计终究是用面向世界的统筹呢,依旧面向切面的设计,甚至你见到OOD OOM
OOP就想吐? 再思考年轻时期每一日必开的Enterprise
Architect已经默默吃灰了遥遥无期?

叩问本人,
是还是不是早已淡忘了3个月前你安插的极端牛逼的体系的初衷? 
恐怕你准备离职,却发今后联网的时候,被问到为啥用那种规划的时候你在无语哽咽?
抑或是一个接口惟有了一个贯彻类?
或然是代码跳转的时候,跳转到了接口而不是促成类,你在暗地骂IDE不智能?

或是整个只来自你还在懵懂时期的1个想法”学以致用”?

请问多少人在软件行业耕耘了多少年,又有微微人踏足了各个牛逼哄哄的框架开发,系统开发?
有多少架构师可以基本五十九人以上的系统的并行开发?又只怕,大家扣心自问,大家统筹的系统为了迎合设计方式,浪费了不怎么行代码,增加了不怎么复杂度,进步了稍稍的培育资金?

这就是本人评论所说,指雁为羹,出去干活之后害人害己.

自作者实在没有完好研读过Java,以及Java各大框架的源码,只是生成他们的UML图,草草看看而已.*

 

 

对部分喜欢用设计情势装逼的人的遗憾。小编是贰个新硎初试的结束学业生,刚工作2个月的时候发现做东西日常因为过往的修改代码浪费大量的年月,后来形成某五个模块因为高校的时候学设计格局记得3个工厂格局,搜了搜复习了须臾间就用上了,发现明显相当模块的落到实处很方便,改动也较少。作者深感是那样的,设计形式当然要趁早学,即使没一些项目经验是肯定不可以熟能生巧使用的,不过起码能在您脑子里留下一个定义和影像,说不定你在贯彻某些class的时候想起来了觉得万分,就这么用上了。