《大话设计模式》读书笔记3

时间:2022-06-01 16:59:08

需求的变更时必然!

开发者应该是考虑如何让自己的程序更能适应变化,而不是抱怨客户的无理,客户不会管程序员加班时的汗水,也不相信程序员失业时的眼泪。

什么是程序集名称?什么是名称空间?

知足可以长乐,但知足如何能进步!

人生目标很明确,别的方面弱一些有什么关系!

什么是三层架构?所谓三层开发,就是关于表现层,业务逻辑层和数据访问层的开发。表现层:用来界面显示和处理。业务逻辑层:根据业务规则来开发软件提供服务的,软件的核心。数据访问层:访问配置文件或处理数据库。

面向对象的4个好处:可维护,可扩展,扩复用和灵活性好。在实际中与其相似的是电脑。PC电脑可以看成是大的软件系统,任何部件如CPU,内存,硬盘,显卡等都可以理解为程序封装中的类好程序集。由于PC易插拔的方式,那么不管哪一个出现问题,都可以在不影响别的部件的前提下进行修改或替换,面向对象的设计方法的有点可见一斑。接口的好处就如同CPU,它可以在千千万万的电脑主板上插上就可以使用,为什么?因为CPU的对外都是针脚式或触点式等标准的接口,这就是接口的最大好处,CPU只需要把接口定义好,内部再复杂也不需要让外界知道,而主板只需要预留与CPU针脚的插槽就可以。

设计模式中的几大设计原则在电脑上同样体现出来。就拿修电脑来说,内存坏了,不应该成为更换CPU的理由,这就是单一职责的体现,就一个类而言,应该仅有一个引起它变化的原因。我们在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展,换句话说,应当可以在不修改源代码的情况下改变这个模块的行为,比如内存不够只要插槽多就可以加,比如硬盘不够了,可以用移动硬盘,PC的接口是有限的,所以扩展有限,软件系统设计的好,却可以无限的扩展。所谓依赖倒转原则,说白了就是要针对接口编程,不要对实现编程,无论主板,CPU,内存,硬盘都是在针对接口编程,如果针对实现编程,那就会出现换内存需要把主板也换了的尴尬,所以说,PC电脑硬件的发展,和面向对象思想发展是完全类似的,这也说明世间万物都是遵循某种类似的规律,谁先掌握这些规律,谁就能最早成为强者。

除了前一次总结的7个设计模式,还有另一个设计模式,“门面模式”(Façade)或叫外观模式。门面模式要求一个子系统的外部与其内部的通信必须通过一个统一的门面(Facade)对象进行。门面模式提供一个高层次的接口,使得子系统易于使用。现实中的例子有很多,比如新闻发言人。当要到春运时,所有的记者要跑到交通部去了解信息,当有非典或禽流感时,所有的记者又跑到卫生部去打听情况,突然这时候楼市大跌,记者们又得马不停蹄前往建设部收集信息。对于记者来说跑来跑去及其辛苦,对于*来说,需要专人应付记者,不能多说话,不能说错话,但也不能不说话,也辛苦。这时候,新闻发言人横空出世,代表*发言,从此,记者们不需要头顶骄阳奔跑于各大*部门之间,只需要天天等在新闻发言厅守着就可以写出准确及时的新闻,而*部门也不用专人来应付记者们的围追堵截,这里只需要辛苦一个人,就是新闻发言人,这就是*的门面。

代码重构没有最好,只有更好。若是程序不会变化,原有的设计就没有什么问题,运行结果正确足够了, 但若是程序可能会时常随业务而变化,新的设计就大大提高了应变性,这其实就是应用设计模式的目的所在。