Java设计模式及实践

Java设计模式及实践读后感

1 简介

 这本书是在程序员节日20月24那天晚上在海友酒店,写完Git如何保留两地并行开发的提交之后购买的,由于编写博客时坐姿不对,第二天肋骨酸疼,持续了好几天,尴尬。在北京整个联试期间,这本书因为偷懒并没有看许多的内容,但出差回到杭州之后,由于每天晚上回到住处都能够约束自己看一些内容,所以进度良好,在11月28日就完成了本书的阅读。

 就像在《思维风暴》中阅读的一样,“求知识与求智慧有什么不同呢?”, 智者笑道:“这二者当然不同了,求知识是求之于外,当你对外在世界了解的越深越广,你所遇到的问题也就越多越难,这样你就自然会感到越来越无知和浅薄。而求智慧则不然,求智慧是求之于内,当你对自己的内心世界了解的越多越深时,你的心智就越圆融无缺,你就会感到一股来自于内在的智性和力量,也就不会有这么多的烦恼了。”知识不等于智慧,虽然自己花了一个月的时间与辛格在一段安闲静默的相处中完成了阅读,但书上的文字并没有转换我所消化过的知识,只是食物,未经消化,便无法成为营养。因此,在这个天气微阴的中午,通过博客这个桥梁来进一步完成文字知识到智慧的转化。

2 阅读时长

 本书作者是卡马尔米特·辛格,在IT行业浸淫了13年的工作经验。全书一共206页,分为9个章节。而自己则是主要在北京出差负责联试时,以及回到杭州之后在浙图、在下班之后回到住处看完的。通过本书的阅读,自己对应用架构的发展趋势、设计模式的理解、设计模式的原理、以及函数式编程与响应式编程均有了一定长度的理解和加深。

3 基本内容

本书的基本内容如下所示:

Java设计模式及实践_第1张图片
围绕着GOF设计模式,辛格谈到了设计模式和原则,以及四种编程范式

Java设计模式及实践_第2张图片
 在智慧营区项目实践的过程中,自己也被JAVA8的lambda表达式和Stream流给惊艳到了,不遗余力的实践lambda表达式,并且还在CSDN上发表过相应的博客,主要是Martin Fowler大神也在《重构二》中使用管道代替循环最早的阐述了lambda表达式的使用,我深信,java8引入的lambda和Stream将会极大的改变我的编码风格和实践,而且我也励志写出更加凝练的,优雅的代码。Optional接口替换==null的实践也在项目中多有实践。函数式编程值得花时间阅读和学习。

 辛格在响应式编程和响应式模式中的阐述时,不遗余力,但自己get的知识点不多,尤其响应式编程,各种操作符和Observerable等术语也让我看的云里雾里,关键是不知道如何使用RxJava这种响应式类库,不明白用这种类库可以解决什么样的问题?但响应式模式中则是以文字的形式阐述了响应式设计模式的四个关键:响应模式、弹性模式、柔性模式以及消息驱动。

Java设计模式及实践_第3张图片

3.1 设计模式和原则

Java设计模式及实践_第4张图片
对于单一职责来说,我们可以这么理解一个优雅的函数是这样的:
Java设计模式及实践_第5张图片

函数应该做一件事,做好这件事,只做一件事。

每个函数都有一个抽象层级,要确保函数只做一件事,那么函数中的语句都应该在一个抽象层级上。另外,函数一定要短小,非常短小,
Java设计模式及实践_第6张图片
Martin Robert以及Martin Fowler都有这样的说法贯穿在自己所写的书中。

对于依赖倒置原则,抽象不应该依赖细节,细节应该依赖于抽象,这说明,在编写关系型代码时,不要依赖具体的类型,而应该依赖类似于接口的抽象概念,这样可以降低二者的依赖关系。

至于开闭原则,在智慧营区项目中Task类便不符合开闭原则。

3.2 设计模式

Java设计模式及实践_第7张图片
较为开心的是,在智慧营区实践过程中,明确使用了单例模式、模板方法模式、工厂方法模式。

3.3 函数式编程

Java设计模式及实践_第8张图片

3.4 响应式

Java设计模式及实践_第9张图片
其中响应式系统应该具有如下属性:
Java设计模式及实践_第10张图片

3.5 应用架构的发展趋势

开发应用程序之前,首先要确定的是其使用的架构设计。需要设计出可以满足所有需求的解决方案,这种设计方案就叫做应用程序架构。架构不仅仅要关注当前的需求,还应该将未来预期的变化考虑在内。

Java设计模式及实践_第11张图片

3.5.1 MVC架构

Java设计模式及实践_第12张图片

3.7 Java 生命历程

Java设计模式及实践_第13张图片
可以从上图,了解Java各个版本的重大特性变化。当然,为了尝鲜,一定要下载JDK9安装在自己的电脑上。迫不及待的想要体验JShell的交互式程序的感觉了。

4 总结

​ 本书在设计模式的讲解上并不深入,但对于设计模式的理解有增强作用,之前自己曾经观看过尚学堂的设计模式视频,因此理解起来并不费力,关键是如何把这些设计模式实践到工作编码之中,实践才能更好的理解,这些知识想要转化为得心应手的智慧,估计还需要很长时间的浸淫和不断的思考。最后以《别在该努力的年纪,徘徊不前》一书中最后一页的内容结束这个博客

谨以此书,献给那些单枪匹马,跌跌撞撞,勇敢面对生活挑战的人。愿你被这个世界温柔以待,愿你目之所及,心之所向满满都是爱。

另外,把为撰写本篇文章所制作的XMind的导出图片附录如下:
Java设计模式及实践_第14张图片

​ 2019-11-30 17:24:34于浙江图书馆

你可能感兴趣的:(读后感)