欢迎来到天天文库
浏览记录
ID:40312679
大小:60.00 KB
页数:9页
时间:2019-07-30
《电脑编程设计模式总结》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、深入浅出设计模式总结//注释 此文章内容来自《深入浅出设计模式(中文版)》无符号包含的内容来自原书或者截取自自己收罗的资料(几乎都来自原书)【】 符号包含的内容同样为原书内容为了便于理解充当原版的解释说明{} 符号包含的内容同样为原书内容为了便于理解充当原版的解释说明() 符号包含内容为本人个人理解。Tips:1.设计模式中所谓的实现一个接口泛指实现某个超类型【可以是类或者接口】的某个方法。2.所谓“高层”组件,是由其他低层组件定义其行为的类。3.当我们说“集合”的时候,我们指的是一群对象。其存储方式可以是各式各样的数据结构,
2、4.例如:列表、数组、散列表,无论用什么方式存储,一律可以视为是集合,有时候也被称为聚合。5.内聚这个术语你应该听过,它用来度量一个类或模块紧密地达到单一目的或责任。当一个模块或一个类被设计成只支持一组相关功能时,我们说它具有高内聚;反之,当被设计成支持一组不相关的功能时,我们说它具有低内聚。内聚是一个比单一责任原则更普通的概念,但两者其实关系是很密切的。遵守这个原则的类容易具有很高的凝聚力,而且比背负许多责任的低内聚类更容易维护。设计原则1.OO基础:抽象,封装,多态,继承。2.找出应用中可能需要变化之处,把它们独立出来,不要和那些
3、不需要变化的代码混在一起【封装变化】。3.针对接口编程,而不是针对实现编程。4.多用组合,少用继承。5.为了交互对象之间的松耦合设计而努力。【松耦合的设计之所以能让我们建立有弹性的OO系统,能够应对变化,是因为对象之间的互相依赖降到了最低】。6.类应该对扩展开放,对修改关闭。【用任何你想要的行为来扩展我们的类】【我们花了许多时间得到了正确的代码,还解决了所有的bug,所以不能让你修改现有代码。我们必须关闭代码以防止被修改】。7.要依赖抽象,不要依赖具体类【依赖倒置原则】【这个原则和和第3个原则相比更强调“抽象”,这个原则说明了,不能让
4、高层组件依赖低层组件,而且,不管是高层或底层组件,“两者”都应该依赖与抽象】。8.最少知道原则:只和你的密友谈话。【最少知道原则】(每个类之间知道其他类的东西越少,依赖就越少,就越容易解耦)。9.【好莱坞原则】别调用【打电话给】我们,我们会调用【打电话给】你。【在好莱坞原则之下,我们允许低层组件将自己挂钩到系统上,但是高层组件会决定什么时候和怎么使用这些低层组件。换句话说,高层组件对待低层组建的方式是“别调用我们,我们会调用你”】。10.一个类应该只有一个引起变化的原因。【单一责任】【类的每个责任都有改变的潜在区域。超过一个责任,意味
5、着超过一个改变的区域。这个原则告诉我们,尽量让每个类保持单一责任】。要点知道OO基础,并不足以让你设计出良好的
6、OO系统。良好的OO设计必须具备可复用、可扩展、可维护三个特性。模式可以让我们建造出具有良好OO设计质量的系统。模式被认为是历经验证的OO设计经验。模式不是代码,而是针对设计问题的通用解决方案。你可把它们应用到特定的应用中。模式不是被发明,而是被发现。大多数的模式和原则,都着眼于软件变化的主题。大多数的模式都允许系统局部改变独立与其他部分。我们常把系统中会变化的部分抽出来封装。模式让开发人员之间有共享的语言,能够最大化沟通的
7、价值。(一说什么什么模式我们就知道其内容,和做法,可以省去很多话,而用一个词去代表)关于使用模式的要点:让设计模式自然而然地出现在你的设计中,而不是为了使用而使用。设计模式并非僵化的教条;你可以依据自己的需要采用或调整。总是使用满足的最简单解决方案,不管他用不用模式。(告诉我们模式并不是必须的很多时候我们用oo就可以解决很多问题)。学习设计模式的类目,可以帮你自己熟悉设计模式以及它们之间的关系。模式的分类(或类目)是将模式分成不同的族群,如果这么做对你有帮助,就采用吧!你必须相当专注才能够成为一个模式的作家:这需要时间也需要耐心,同时
8、还必须乐意做大量的精化工作。请牢记:你所遇到大多数的模式都是现有模式的变体,而非新的模式。模式能够为你带来的最大好处之一是:让你的团队拥有共享词汇。模式策略模式:定义了算法家族,分别封装起来,让它们之间,可以互换替换,此模式让算法的变化独立于使用算法的客户。{}观察者模式:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。{出版者+订阅者=观察者模式如果你了解报纸的订阅是怎么回事,其实就知道观察者模式是怎么回事,只是名称不太一样:出版者改名为“主题”(主要提供数据的一方),订阅者改称为“
9、观察者”(需要使用数据的一方)。主题和观察者定义了一对多的关系。观察者依赖于此主题,只要主题状态一有变化,观察者就会被通知。根据通知的风格,观察者可能因此新值而更新。有新类型的观察者出现时,主题的代码不需要修改。假如我们
此文档下载收益归作者所有