《Head First 设计模式》观后感——专业并不一定是深奥和枯燥
《Head First 设计模式》观后感——专业并不一定是深奥和枯燥
说起设计模式,我想做程序的朋友都不会感到陌生,这就像是软件里的缩写一样,可以快速的表达一系列的意思。
但是纵观市面上的书籍,要么讲得含糊不清,要么讲得生涩难懂。
如果是在以前,我们只有这些选择,但是现在,情况有了转变,我们有了Head First系列。
《Head first》系列书籍的最大特点就是图文并茂,而且用有趣的故事来讲述深奥的道理,配合每章之后的练习,
让读者就像读一本故事书一样了解到深奥的专业知识。
举个例子,通常,我们在读到装饰者模式和代理模式的时候总是分不清楚,它们有太多的共同点,在这本书里面,
几位作者用了几个有趣的例子来阐述这两个长相相似的模式。
对于装饰者模式,首先,提出了一家名叫星巴兹的咖啡厅希望有更多品种的咖啡,但是基本每种都是通过原味咖里添加各种材料演变的,
这种情况如果每种咖啡都新建立一个品种是不是太复杂而重复了呢?
这时候,就是我们的装饰者模式发威的时候了,它可以通过对对象的封装来添加成员,改变价格。
在这个有趣的故事之后,想必大家对装饰者模式有一个大概的了解了,然后作者提出了JAVA中的I/O类,通过对其拆分,发现也是一个典型的装饰模式。
通过这样的寓教于乐的方式,要区分装饰者模式和代理模式就易如反掌了吧。
这是一本,读过之后就很难忘记的书籍,要把复杂的模式讲清楚很难,讲得浅显易懂又不失深度就更难了。
这本书确实是我所读技术类书籍当中比较好的一本,可以排进个人图书榜前三的好书,时时温习之,大有收获。
《Head First 设计模式》观后感——专业并不一定是深奥和枯燥的更多相关文章
- Java与设计模式-适配器模式
适配器模式是开发中常常会用到的模式,Android开发中常常常使用到的各种adapter就属于适配器模式,连接各种数据库时也要用到适配器模式. 适配器模式在生活中的实例也随处可见,你托人在日本买了个电 ...
- SQL注入技术专题—由浅入深【精华聚合】
作者:坏蛋链接:https://zhuanlan.zhihu.com/p/23569276来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 不管用什么语言编写的Web应用 ...
- SQL注入学习资料总结
转载自:https://bbs.ichunqiu.com/thread-12105-1-1.html 什么是SQL注入 SQL注入基本介绍 结构化查询语言(Structured Query Lang ...
- Oracle学习总结(6)—— SQL注入技术
不管用什么语言编写的Web应用,它们都用一个共同点,具有交互性并且多数是数据库驱动.在网络中,数据库驱动的Web应用随处可见,由此而存在的SQL注入是影响企业运营且最具破坏性的漏洞之一. SQL注入基 ...
- HR问了我朋友什么是简单工厂模式,竟被质疑是否学过设计模式,是否是计算机专业?
越是简单的东西,越是容易被忽略,我来带你们好复习一下! 简单工厂模式 简单工厂模式也被称为静态工厂模式;使用简单工厂模式可以将产品的"消费"和生产完全分开,客户端只需要知道自己需要 ...
- 设计模式(一):“穿越火线”中的“策略模式”(Strategy Pattern)
在前段时间呢陆陆续续的更新了一系列关于重构的文章.在重构我们既有的代码时,往往会用到设计模式.在之前重构系列的博客中,我们在重构时用到了“工厂模式”.“策略模式”.“状态模式”等.当然在重构时,有的地 ...
- 【白话设计模式四】单例模式(Singleton)
转自:https://my.oschina.net/xianggao/blog/616385 0 系列目录 白话设计模式 工厂模式 单例模式 [白话设计模式一]简单工厂模式(Simple Factor ...
- 小菜学习设计模式(三)—工厂方法(Factory Method)模式
前言 设计模式目录: 小菜学习设计模式(一)—模板方法(Template)模式 小菜学习设计模式(二)—单例(Singleton)模式 小菜学习设计模式(三)—工厂方法(Factory Method) ...
- [Head First设计模式]身边的设计模式——适配器模式
系列文章 [Head First设计模式]山西面馆中的设计模式——装饰者模式 [Head First设计模式]山西面馆中的设计模式——观察者模式 [Head First设计模式]山西面馆中的设计模式— ...
随机推荐
- 浅谈ES6新特性
ES6的了解 新增模板字符串(为JavaScript提供了简单的字符串插值功能).箭头函数(操作符左边为输入的参数,而右边则是进行的操作以及返回的值Inputs=>outputs.).for-o ...
- altera官方推荐时钟使用方法
Register Combinational Logic Outputs If you use the output from combinational logic as a clock signa ...
- server 2012系统更改电脑密码
在server2012系统中将鼠标指针移至任务栏右侧,在弹出的操作栏中单击“设置”选项. 在打开的设置操作界面中,鼠标单击“控制面板”选项. 在打开的控制面板选项窗口中,单击“管理工具”选 ...
- Oracle 块修改跟踪 (Block Change Tracking) 说明
Block ChangeTracking 是Oracle 10g里推出的特性.官网对Block change tracking 的定义如下: Adatabase option that causes ...
- elasticsearch 6.x 处理一对多关系使用场景
思考:一个用户有多篇博客,如何查询博客作者姓名中带“旺”字.博客标题中带“运”的10篇博客列表 elasticsearch关联模型: 一: 应用层做联接2个索引博客作者.博客发布先从博客作者中查询出符 ...
- JAVASE02-Unit011: TCP通信(小程序)
TCP通信(小程序) server端: package chat; import java.io.BufferedReader; import java.io.IOException; import ...
- springmvc之获取参数
1.导包,四大核心包,一个切面包(AOP),logging,web,springmvc 2.配置文件,核心代码如下: web.xml <servlet> <servlet-name& ...
- 52道Python面试题
1.python中is和==的区别 Python中对象包含的三个基本要素,分别是:id(身份标识) .type(数据类型)和value(值).‘==’比较的是value值‘is’比较的是id 2.简述 ...
- nginx限制请求之四:目录进行IP限制
相关文章: <高可用服务设计之二:Rate limiting 限流与降级> <nginx限制请求之一:(ngx_http_limit_conn_module)模块> <n ...
- linux 文件结构
Linux常见的目录解释: 目录 描述 / 根目录 /bin 做为基础系统所需要的最基础的命令就是放在这里.比如 ls.cp.mkdir等命令:功能和/usr/bin类似,这个目录中的文件都是可执行的 ...