文档章节

设计模式 经典书籍必备推荐

N3verL4nd
 N3verL4nd
发布于 2017/03/25 10:41
字数 1254
阅读 3
收藏 0
很多朋友问学习设计模式的书籍,老大沧浪在FAQ里有个简短的叙述,这里我引申一下,说说自己看过或者翻过的设计模式书籍,由于水平所限,肯定有不对的地方,希望大家指正,如果大家看到好的模式相关书籍,希望能回帖补充。

首 先模式是不分语言的,Beck在他的TDD一书中用python实现了Composite模式,充分证明了这一点。不过我认为目前模式方面的好书基本都是 基于java语言的,所以不管你是用C#还是CPP,都请学会阅读java代码,毕竟现在OO和模式还是有java社群引领的。

我将按照初级,中级,高级三类来划分推荐的书。并且按照格式——名称,语言,内容&评论,推荐指数来写:)。

初级:我认为初级的标准是阐述模式是什么以及常见模式的介绍。
1.
名称 : Head First Design Patterns
语言 : java
评论 : Jolt大奖得主,介绍了常见的十几种模式。我认为最好的模式入门书籍,内容生动,风格活泼。如果对模式了解较少,看这本书最合适不过,即使你水平不错,相信看了也会有收获。
推荐 : 五星

2.
名称 :java与模式
语言 :java
评论 : 首先介绍了SRP,LSP等基本原则,然后介绍了GOF23种模式和其他三种模式,以中国传统名著如西游记等举例,写的比较不错。当然1000多页的厚度读起来也需要耐心:)。虽然有些知识稍微过时,而且跟java语言联系太紧密,但还是本好书。
推荐 : 四星

3. 
名称 : .NET与设计模式
语言 : C#
评论 : 和上面一本书定位和风格非常相似,只不过换了语言和平台。如果你是.net的坚决拥护者,无论如何不肯看用   java语言写的书,那么这本书适合你,个人认为这本书写得比C#设计模式要好。
推荐 : 四星

4.
名称 : C#设计模式
语言 : C#
评论 : 很薄的一本书,仅仅按照GOF的风格用C#描述了GOF模式,感觉这种书意义不大。
推荐 : 两星

5.
名称 : 深入浅出设计模式(C#/java版)
语言 : C#/java
评论 : 和上本书风格相似,语言既有C#又有java,例子感觉是随便从网上搜集的。
推荐 : 两星

中级:中级的书不仅仅是介绍模式,更多的是关注模式的应用。
1.
名称 : 设计模式解析
语言 : java(第二版)
评论 : 也是久负盛名的一本书,代码大全的作者推荐的模式学习书籍。书中的很多思路很有启发性,值得阅读。只是作者狂引建筑的永恒之道,让人觉得莫名其妙。
推荐 : 四星

2.
名称 : 重构与模式
语言 : java
评论 : 我期望很高的一本书,但看了以后发现是七分重构三分模式,对模式本身叙述不多,主要将如何重构实现模式,适合有一点基础的朋友阅读。
推荐 : 四星

3.
名称 : 敏捷软件开发 原则.模式与实践
语言 : java,少量C++
评论 : Jolt大奖得主,非常好的一本书,首先讲解了OCP,DIP等基本原则,然后通过几个实际例子讲解模式,论述的十分精彩,我认为是中级图书中最好的一本。
推荐 : 五星

4.
名称 : 道法自然
语言 : C++
评论 : 国人的精彩原创,相信大家早就听说过,看过。通过FishGUI这个实际项目阐述OO和模式。只是不习惯C++的朋友读起来可能有些障碍。
推荐 : 五星

5.
名称 : 模式的乐趣
语言 : java
评论 : 很薄的一本小书,通俗易懂,通过三个小例子讲解模式,消遣读物:)
推荐 : 三星

6.
名称 : 设计模式初学者指南
语言 : java
评论 : 书名严重误导,绝不适合初学者看。作者通过两个项目讲解模式,写的还是不错的。只是作者观点有些偏激,恐怕会引起.net程序员的反感。
推荐 : 三星 

高级: 相信大家也猜的到,所有模式书籍配得上高级的也只有GOF那本了
名称 : 设计模式   可复用面向对象软件的基础
语言 : C++, 少量Smalltalk
评论 : 没什么可说的,大家都清楚:)。除非GOF自己出第二版,否则无法超越。即使没有能力通读也应该买一本作为终极参考
推荐 : 五星

本文仅仅抛砖引玉,希望大家补充自己看过翻过的书。其中国外五星级的三本书已经提供电子版.

© 著作权归作者所有

N3verL4nd
粉丝 1
博文 379
码字总数 481243
作品 0
朝阳
私信 提问

暂无文章

vue v-html动态生成的html怎么加样式

1. v-html加样式 在vue开发中碰到需要动态生成html,并且需要有样式,这时候发现像往常一样写样式的时候不起作用,网上搜了一下,发现通过 v-html 创建的 DOM 内容不受作用域内的样式影响,但...

litCabbage
32分钟前
3
0
Appium+python自动化(三十三)- 测试环境和本地环境傻傻滴分不清楚-Remote(超详解)

  简介   在前边所有涉及启动app的时候有这样一行代码driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps),很多小伙伴们和同学们不知道这个ip和端口哪里来的,我...

开源仔
40分钟前
1
0
各种放大器电路之功率放大器的分析

  供给负载一定输出功率的放大器叫做功率放大器。它是收音机、扩音机或其他电子设备的末级,它推动扬声器发出声音,使电动机转动,使记录仪表动作等。功率放大器主要是考虑如何获得最大的输...

xyxyty
40分钟前
3
0
MySQL8.0.17 - Multi-Valued Indexes 简述

本文主要简单介绍下8.0.17新引入的功能multi-valued index, 顾名思义,索引上对于同一个Primary key, 可以建立多个二级索引项,实际上已经对array类型的基础功能做了支持 (感觉官方未来一定...

阿里云官方博客
今天
13
0
make4.1降级 make-3.81、2错误

在编译 make-3.82 的时候出现如下错误提示 glob/glob.c:xxx: undefined reference to `__alloca'` 修改 /glob/glob.c // #if !defined __alloca && !defined __GNU_LIBRARY__ # ifdef __GNUC......

Domineering
今天
19
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部