大话设计模式读后感 篇1
《大话设计模式》读后感300字:
这本书在书柜里呆了太久时间了,是娃爸刚开始做程序猿的时候买的,咱也算半个程序猿吧,毕竟咱也是写代码滴,虽然做验证工程师套路就那些。
文中讲了好多设计模式,光工厂模式就好几种,什么简单工厂模式,抽象工厂模式等等,更不用说其他的什么观察者模式,依赖倒转模式,策略模式了,各种技巧炫之又炫,一边看一边暗叹做IC验证工程师太幸福了,有现成的方法学(UVM),工厂模式都给设计好了,只要会用就行了??,这就造成了自己知其然不知所以然,如果真要提高自己的能力,看UVM源码时,知道本书的各种设计模式还是不错滴。
这本书还没看完,给我的感觉就是设计时要把松耦合的主旨贯穿始终,善用抽象类,这样才有利于各模块间的复用(可能水平有限没能领会到本质)。我也写过不少的代码,但复用性就没那么好,我觉得究其原因是各个功能块之间耦合太紧,一个类里实现了太多的功能,这个以后写代码时要注意了。
大话设计模式读后感 篇2
在读完《java编程思想》后,我对其中设计范式有了浓厚的兴趣,所以在别人的推荐下我读了另一本书:《大话设计模式》,
我从中学到了很多知识。我对设计模式的核心和内容有了更深入的理解,我将在这里与大家分享。
本书以大鸟和小菜的情景对话和编程实例讲解了23种设计模式,本书共有29章,前5章讲解了面向对象的意义、好处以及几个重要的设计原则。其他24章讲解释设计模式和摘要,以幽默幽默的方式告诉我们如何更好地进行设计,接下来我将详细介绍这本书。
在本书的1-5章让我懂得了并不是**无错就是好,本书的开头通过小菜的面试生动形象的告诉我们编程是一门技术,更加是一门艺术,不能只满足于写完**运行结果正确就完事,时常考虑如何让**更加简练,更加容易维护,容易扩展和复用,只有这样才可以是真的提高。
在其余的24章,大鸟通过小菜遇到的一些编程优化与维护的问题简单明了的回答了23种模式的优点、缺点和面对不同情况时选用的模式。还间接的告诉我们一些人生的道理,例如:如果你真想在这个行业,有所起色,你的兴趣和爱好、扎实的努力最重要(这条法则,哪个行业都是通用的)。
看完后我更明确自己该干什么了。
我平静地合上了书,但我的内心充满了对java开发行业的美好憧憬。我知道学习实永无止境的。我需要不断地学习和实践,才能成为一名优秀的软件工程师。我相信我会在这个行业中拥有美好的未来。
大话设计模式读后感 篇3
一、 单一职责原则
1、 定义:就一个类而言应该只有一个引起他变化的原因
2。原因:内容变化过多会导致这个类的内容过多,变化过多的因素在我不知道原因的情况下很容易导致一些异常的变化,从而影响系统的判断
3、 说明:
在编写**时,类和单元的功能应该尽可能详细和清晰。
比如要实现一个计算器功能:
需要包含的模块:
数据输入模块
负责输入要计算的数据、要计算的符号、显示计算结果
数据计算模块
负责根据计算的符号,得出计算的数据结果
分析:由于输入模块易于更改,不能确定其形式,所以可以是console、winform、wpf等形式,所以该模块不计划
数据计算模块
由于计算模块就是将两个数据通过运算符计算成一个数据,因此可以为每一种计算的运算符创建一个算法实现类进行计算输出,一个工厂类通过运算符分配两个数据应该进行什么类的运算
好处:这样的规划数据计算模块,可以使得计算模块基本稳定,不需要再输入模块进行修改之后修改计算模块,如果需要添加新的计算符号的时候只需要添加算法实现类,以及让工厂类识别符号即可以完成一个新的计算符号的添加。删除时,只需删除工厂中相应的符号。
编写的操作更加简单方便
二、 开放封闭原则
一。定义:软件实体(类、模块、函数)应该是可扩展的,但不可修改的,即对扩展开放,对修改关闭。
2。原因:软件维护时在原有基础上增加功能比较方便,但修改内容时容易导致其他模块工作异常。
3、 说明:
在现有稳定系统的基础上添加内容应尽量减少对现有类的修改,以防止关联错误。因此,在系统设计的初期,我们应该考虑系统设计是否方便以后的扩展。如果以后扩展需要修改很多内容,会大大降低系统的安全性和稳定性。
开发的时候需要开发者将类写的足够好,后期增加新的功能的时候能够不用修改现有的绝大部分的类,只需要写好一个新的类,在需要的位置将类嵌套在系统中即可。
因此在开发的初期就应该去使用抽象隔离一些独立功能模组和一些会发生变化的功能模块(如计算器的运算类,随时可能增加新的运算符,就需要使用抽象将运算按照运算符进行隔离,增加新的运算的时候只需要编写一个继承运算抽象类,完成运算算法的类,然后嵌入到系统中即可完成添加,而不需要在原有**中增加新的运算,防止增加过程中不小心修改了已有的正常功能)。
三、 依赖倒转原则
一。定义:高级模块不应该依赖于低级模块,两者都应该依赖于抽象;抽象不应该依赖于细节,细节应该依赖于抽象
2、 原因:模块与模块直接采用的是抽象的依赖关系,而不是直接调用的依赖关系,这样切换模块的时候不需要产生大范围的**修改工作,因为彼此不产生直接的依赖关系,全部是以抽象接口方式进行进行调用,更换的模块只需要继承自同一个接口即可。
3、 说明:针对接口进行编程而不是针对实现进行编程。
例如,系统的数据库使用sqlite数据进行存储。后来,出于什么原因,它需要切换数据库,将sqlite更改为xml来存储数据。如果系统遵从依赖倒转原则,将所有的数据请求全部封装起来,接口的形式对外公布,外围需要读取或者写入数据的时候只需要对接口进行访问。而数据类只需要实现其读取接口。
如果需要切换数据存储介质,则只能通过切换实现接口的数据类来切换数据库,而不是将使用sql语句进行数据库读写改为使用xml进行数据读写。
四、 迪米特法则(最少知识原则)
1、 定义:如果两个类不必发生彼此间直接通信,那么两个类就不应当发生直接的相互作用,如果其中一个类必须调用另一个类中的某一个方法,可以通过第三方**这个调用关系实现调用。
2、 原因:降低模块间的耦合度,类与类之间的耦合程度越低,其可复用性越强,一个处于弱耦合的类被修改,将会最大限度的减少对整个系统的影响,不会对存在依赖关系的类有影响,将修改的影响降低到自身类。
三。注:在一个类的设计中,每个类都应尽量减少其内部成员的访问权限,不公开不需要公开的内容。
五、 总结所有原则就是说类要尽可能的写的功能单一一些这样的话便于后期扩展增加内容。有些因素可能在类之间发生变化(例如计算器中包含的运算符)。不要依赖于特定的实现,而是依赖于抽象。类和类尽可能依赖于抽象,而不是类本身的实现。
类的内部成员应尽可能减少其可访问性,以便如果必须修改类,则修改的影响降减少到类本身,而不是调用该类的所有其他类。
luke.lv
2016/06/01
大话设计模式读后感 篇4
这本书在书柜里呆了太久时间了,是娃爸刚开始做程序猿的时候买的,咱也算半个程序情沦杏花村猿吧,毕竟咱也是写代码滴,虽然做验证工程师套路就那些。
文中讲了好多设计模式,光工厂模式就好几种,什么简单工厂模式,抽象工厂模式情沦杏花村等等,更不用说其他的什么观察者情沦杏花村模式,依赖倒转模式,策略模式了,各种技巧炫之又炫,一边看一边暗叹做IC验证工情沦杏花村程师太幸福了,有现成的方法学(UVM),工厂模式都给设计好了,只要会用就行了??,这就造成了自己知其然不知所以然,如果真要提高自己的能情沦杏花村力,看UVM源码时,知道本书的各种设计模式还是不错滴。
这本书还没看完,给我的感觉就是设计时要把松耦合的主旨贯穿始终,善用抽象类,这样才有利于各模块间的复用(可能水平有限没能领会到本质)。我也写过不少的代码,但情沦杏花村复用性就没那么好,我觉得究其原因是各个功能块之间耦合太紧,一个类里实现了太多的功能,这个以后写代码时要注意了。
0 留言