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

  通过UML图对类与类之间的设计,对软件的代码进行封装,重构,这种方法不仅让代码具有极大的扩展性和优秀的可维护性,同时在我看来,这种整理后的代码更加易于理解,正应了那句话,没有规矩不成方圆,完善的规则带来的是秩序的稳定,这种方法我会逐渐的应用于自己的编程中去。

  因为这学期开设了《软件设计》这门课程,所以通过上课老师的讲解,课后通过做一些练习,对面向对象的设计原则有了一些了解。

   常用的面向对象原则包括7个,这些原则并不是孤立存在的,它们相互依赖相互补充。

  单一职责原则(高内聚,低耦合):单一职责原则是最简单的面向对象设计原则,它用于控制类的粒度大小。就一个类而言,应该仅有一个引起它变化的原因(There should never be more than one reason for a class to change)。一个类承担的责任越多,它被复用的可能性就越小,而且如果一个类承担的职责越多,就相当于将这些职责耦合在一起,当其中一个职责变化时,可能会影响其他职责的运作。

  开闭原则(基石):开闭原则是面向对象的可复用设计的一块基石,它是最重要的面向对象设计原则。一个软件实体应当对扩展开放,对修改关闭,也就是说在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展,即实现在不修改源代码的情况下改变这个模块的行为(Software entities should be open for extension, but closed for modification)。这正式我现阶段遇到的最大问题,只要一修改代码,就要对整个代码做出调整,浪费时间不说,收获却并没有多少。

  里式代换原则:开闭原则的核心是对系统进行抽象化,并且从抽象化导出具体化。从抽象化到具体化的过程中需要使用继承关系及里氏代换原则。定义:所有引用基类(父类)的地方必须能够透明地使用其子类的对象(Functions that use pointers or references to base classes must be able to use objects of derived classes without knowing it)。

  依赖倒转原则(面向对象设计的主要手段):如果说开闭原则是面向对象设计的目标的话,那么依赖倒转原则就是实现面向对象设计的主要机制,依赖倒转原则是系统抽象化的具体实现。定义:要针对接口编程,不要针对实现编程(Program to an interface , not an implementation)。简单的说,代码要依赖于抽象的类,而不要依赖于具体的类,要针对接口或抽象类编程,而不是针对具体类编程。

  接口隔离原则:接口隔离原则要求我们将一些较大的接口进行细化,使用多个专门的接口来替换单一的总结口。定义:一旦一个接口太大,则需要将它分割成一些更细小的接口,使用该接口的客户端仅需要知道与之相关的方法即可(Once an interface has gotten too ’fat’ it need to be split into smaller and more specific interfaces so that any clients of the interface will only know about the methods that pertain to them)。

  合成复用原则:合成复用原则是面向对象设计中非常重要的一条原则,为了降低系统中类之间的耦合度,该原则倡导多用关联关系,少用继承关系。定义:尽量使用对象组合,而不是继承来达到复用的目的(Favor composition of objects over inheritance as a reuse mechanism)。通过继承来实现复用很简单,而且子类可以覆盖父类的方法,易于扩展。但其主要问题在于继承复用会破坏系统的封装性,因为继承会将基类的实现细节暴露给子类,由于基类的某些内部细节对子类来说也是可见的,所以这种复用又称为“白箱”复用。如果基类发生改变,那么子类的实现也不得不发生改变;从基类继承而来的实现是静态的,不可能在运行时发生改变,没有足够的灵活性,而且继承只能在有效的环境中使用(例如类不能被声明为final类)。

  迪米特法则:迪米特法则用于降低系统的耦合度,使类与类之间保持松散的耦合关系。迪米特法则又称为最少知识原则。定义:(1).不要和“陌生人”说话(Don’t talk to stangers)。(2).只与你的直接朋友通信(Talk only to your immediate friends)。(3).每一个软件单位对其他的单位都只有最少的知识,而且局限于那些与本单位密切相关的软件单位(Each unit should have only limited knowledge about other units: only units ‘closely’ related to the current unit)。

时间: 2024-10-29 03:06:20

《大话设计模式》读书笔记2的相关文章

你的灯还亮着吗阅读笔记之一

<你的灯亮着吗>这本书是美国著名思想家唐纳德·高斯和维拉尔德·温伯格所著的一本关于定义问题.分析问题和解决问题的书,从1982年发行第一版至今畅销不衰被奉为问题解决领域里的经典之作,全书分为6个主题,每个主题都有若干生动有趣而又有警戒意义的故事作为主线通过对实战中实际问题的解决,引出作者对于问题解决领域的重要观点,本书所提到的解决问题的方法是新颖的,然而仅凭读一本书就能够学会如何解决问题是不可能的,所以读书也不足按部就班地教我们如何解决问题,而是希望读并通过阅读概述有所思悟,最终形成自己的分析

你的灯还亮着吗阅读笔记之三

解决问题是最后一步,建立在分析问题基础上,解决问题有多条途径,如果通过各种约束条件选择最佳的途径来解决问题是需要考虑的重要因素.问题解决后要及时进行归纳和总结,形成自己的知识库.   1.当别人能够解决问题时候千万不要越俎代庖   2.如果某人能够解决该问题当他自己却不会遇到该问题时候,首要的是让他感受到该问题   3.试试换过来指责你自己-即使只有一秒钟   4.一个小小的提醒往往别复杂的解决问题方法更有效(你的灯亮着吗)   5.任何解决问题方法都不可避免有副作用-没有最好,只有更好

你的灯还亮着吗阅读笔记之二

在对问题有了相对正确的定义后,接下来就是思考和分析问题,我们要注意搞清楚“这是谁的问题”和“问题的真正根源”,当别人能够解决问题时,千万不要越俎代庖,我认为书中提出的这种思考和分析问题的方式,对于构建和谐团队关系有着很大的启示,试想当团队之间出现问题时,如果大家都能“试试换过来指责自己”,从自身找问题,相互理解,那么团队之间会是多么和谐的景象呢. 圆满地解决问题是建立在准确定义和全面深入分析问题的基础上的.如何在各种约束条件下选择最佳的途径来解决问题是需要考虑的重要因素.书中给出了很多启发性建议

《你的灯还亮着吗》读书笔记2

由于本书只有短短6章,我就每两章写一篇读书笔记  第三章的题目是:什么是真正的问题?这章中讲述了,问题的存在往往被人忽视了,书中提到问题最难以处理的部分恰恰是去意识到它们的存在.我们在工作的时候往往都发生问题替代,把所有人或者这个圈子以外的人都用自己或者圈内人来替代,这样往往就把一些存在的真正的问题给忽视了.但是我们的工作面对的通常都不是我们自己,二是大众,因此我们应该从现实中,从别人身上来找到我们自己存在的问题.  第四章的一个故事中的一句点睛的话很有特色——你的灯还亮着么?这是解觉隧道车辆开

《你的灯还亮着吗》读书笔记1

<你的灯还亮着吗>这本书,如果从代序开始算起的话,那么章柏幸的代序就已经让我从第一印象中得知了这本所要讲述的内容. 这是一本充满问题的书,同时也是一本教会大家如何解决问题的书,它会告诉我们一种思维,一种解决问题的思路,而不是某一种具体的解决问题的方法.作者的讲述能力还是很厉害的,因为他每讲的一个故事,都会吸引我从不同的角度去思索问题的所在,在前几篇的阅读中,第一个故事让我颇有感触. 第一个故事讲的事一个电梯使用的故事,当我看到电梯调度出现问题之后,我的第一反应和大多数人一样,我在努力的去试想各

《你的灯还亮着吗?》读后感(一)

经过老师的推荐,看了一本关于我们软件工程专业方面的书,书名为<你的灯还亮着吗?>中文版,看过这本书之后,借用好搜百科的一句话:“这本书为人们思考能力的提高提供了一些启迪性的帮助.全书幽默地引导读者在处理问题时首先应该识别真正的问题,然后确定问题的拥有.”<你的灯还亮着吗?>全书中间贯穿了几个故事,透过这些故事让人对“问题”以及如何探究真正的问题这个概念有了进一步的了解.这本书不愧被称为管理者必读书之一.

《你的灯还亮着吗》 阅读笔记一

你的灯还亮着吗? 作者没有按部就班的告诉我们解决问题的方法,所以我们可以通过阅读概括出自己的感悟 解决一个问题的开始是要弄清问题的来源,了解问题的本质,如何更正确的定义问题 书中说到:“问题其实就是你期望的东西跟你体验的东西之间的差别”. 我们需要搞清楚“问题是什么”,不要迫不及待地就陷入解决问题的情形中,不要把问题的解决办法误认为是问题的定义. 就像书中说到的,你也许不能肯定自己对问题的定义有了正确的解释,可是不要放弃我们追逐问题的脚步

你的灯还亮着吗?阅读笔记之三

06你的灯还亮着吗?阅读笔记之三 问题最难以处理的部分恰恰是去意识到它们的存在. 如果在你对问题的理解中,你想不出至少 3 样可能出错的东西,那么你并没有真正的理解这个问题. 每种解决方法都会带来新的问题,我们永远都不能消灭问题.问题.解决方法以及新的问题交织成一条无穷无尽的锁链.我们能期望的最好结果就是新的问题没有我们“解决了”的那个那么棘手.我们使问题变得不那么棘手,其实只是把问题放在“别人家的后院儿里”.这种技巧叫做转嫁问题.新的问题常常是在无意识的情况下产生的. 当我们把我们的设计或定义

《你的灯还亮着吗》阅读笔记1

一开始看到这本书的名字的时候,感觉这就是一本励志书,“你的灯还亮着吗”,就是在说,你还有没有在深夜里还用功,加班编程,但是在读了开头第一章的时候,发现这就是在说明告诉读者,要怎么对待问题,怎么看待问题,怎么解决问题.问题其实就是你期望的东西和你体验的东西之间的差别,大多数情况下,问题的根源在你自己身上,哪儿来回哪儿去.在这个充满问题的社会中,我们常常寻找外界给自己带来的问题,却不能注意到问题的根源常常在你自己身上.很多人都是站在自己的立场上去思考问题,自然把所有的责任都推给他人,能做到站在对方立

你的灯还亮着吗

你的灯还亮着吗?--发现问题的真正所在 序言 问题 :没人会读序言 解决办法 :把序言作为第一章 解决方法带来新的问题 :第一章很无聊 新的解决方法 :删了第一章,把第二章作为第一章 第一部分:问题是什么 ### 第一章: 一个问题 > __背景故事:__一个办公楼(雷龙大厦)的电梯不够用了.有的租户威胁说,如果不尽快改善电梯服务,他们就要退租. 通过电梯不够用的场景,引出: > * 问题是什么? > * 谁碰到了问题? > * 问题的本质是什么? 第二章:皮特发起了一个请愿 从不