《类设计的基本经验》PPT课件.ppt
《《类设计的基本经验》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《类设计的基本经验》PPT课件.ppt(27页珍藏版)》请在三一办公上搜索。
1、授课:李远辉,类设计的基本经验 OO设计原则,湖南工程学院计算机与通信学院,湖南工程学院计算机与通信学院,授课:李远辉,Java 编程技术教程,1、类要单一2、加强内聚,松散耦合3、好的封装性4、类的粒度要合理5、实现类不能依赖它的使用类6、应考虑灵活性,也就是可配置、可维护 可配置:可以通过修改配置文件来选择系统提供的功能 可维护:可以很方便地修改功能,容易定位bug,功能隔离较好,不会牵一发而动全身,湖南工程学院计算机与通信学院,授课:李远辉,Java 编程技术教程,7、要考虑性能、考虑可伸缩性 综合性能、性能定点、性能拐点,软件的体系结构决定了性能的顶点8、要考虑今后可能的变化,也就是可
2、扩展性9、要考虑合理的复用10、要合理地考虑接口和抽象类的使用优先使用接口,抽象类既要约束子类的行为,又要为子类提供公共的功能。11、尽量减少类与协作类的交互次数和交互信息的量12、父类不应知道子类的信息,子类必须知道父类的信息13、更多地使用类的组合,而不是继承14、访问对象必须通过接口,不能绕过接口直接去访问。,湖南工程学院计算机与通信学院,授课:李远辉,Java 编程技术教程,面向对象的设计原则(1)单一职责原则:就一个类而言,应该仅有一个引起变化的原因。(2)开放-封闭原则:软件实体应该是可以扩展的,但是不可修改。(3)替换原则:子类应该能够替换他的父类。(4)依赖倒置原则:抽象不应该
3、以来细节,细节应该以来抽象(5)接口隔离原则:不应强迫用户依赖他们不用的方法,接口属于客户,不属于他所在的类层次。(6)重用发布等价原则:重用的粒度就是发布的粒度。(7)共同封闭原则:包所有类应该对于同一类性质的变化应该是共同封闭的。(8)共同重用原则:一个包中的所有类应该是共同重用的。如果重用包中的一个类,就应该重用包中所有类。(9)无环依赖原则:在包的依赖图中不应该存在环。(10)稳定依赖原则:朝着稳定依赖的方向进行依赖。(11)稳定抽象原则:包的抽象程度应该和依赖的程度一致。,湖南工程学院计算机与通信学院,授课:李远辉,Java 编程技术教程,依赖是和变化紧密联系在一起的概念。由于依赖关
4、系的存在,变化在某处发生时,影响会波及开来,造成很多修改工作,这就是依赖的危害。可以说变化是始作俑者,依赖是助纣为虐。我们可以不去拥抱变化吗?不可以。未来将是越来越不可预测,这是新经济最具挑战性的方面之一。商务和技术上的瞬息万变会产生变化,这既可以看作要防范的威胁,也可以看作应该欢迎的机遇。既然变化不可避免,我们所能做的就是处理好依赖关系,将变化造成的影响波及范围尽量减小。,湖南工程学院计算机与通信学院,授课:李远辉,Java 编程技术教程,单 一职责原则(Single-Resposibility Principle)。对一个类而言,应该仅有一个引起它变化的原因。本原则是我们非常熟悉地高内聚性
5、原则的引申,但是通过将职责极具创意地 定义为变化的原因,使得本原则极具操作性,尽显大师风范。同时,本原则还揭示了内聚性和耦合生,基本途径就是提高内聚性;如果一个类承担的职责过多,那么这些职责就会相互依赖,一个职责的变化可能会影响另一个职责的履行。其实OOD的实质,就是合理地进行类的职责分配。,湖南工程学院计算机与通信学院,授课:李远辉,Java 编程技术教程,开放封闭原则(Open-Closed principle)。软件实体应该是可以扩展的,但是不可修改。本原则紧紧围绕变化展开,变化来临时,如果不必改动软件实体裁的源代码,就能扩充它 的行为,那么这个软件实体设计就是满足开放封闭原则的。如果说
6、我们预测到某种变化,或者某种变化发生了,我们应当创建抽象类来隔离以后发生的同类变化。在 Java中,这种抽象是指抽象基类或接口;在C+中,这各抽象是指抽象基类或纯抽象基类。当然,没有对所有情况都贴切的模型,我们必须对软件实体应该面 对的变化做出选择。,湖南工程学院计算机与通信学院,授课:李远辉,Java 编程技术教程,Liskov替换原则(Liskov-Substituion Principle)。子类型必须能够替换掉它们的基类型。本原则和开放封闭原则关系密切,正是子类型的可替换性,才使得使用基类型模块无需修改就可 扩充。Liskov替换原则从基于契约的设计演化而来,契约通过为每个方法声明先验
7、条件和后验条件;定义子类时,必须遵守这些先验条件和后 验条件。当前基于契的设计发展势头正劲,对实现软件工厂的组装生产梦想是一个有力的支持,湖南工程学院计算机与通信学院,授课:李远辉,Java 编程技术教程,依赖倒置原则(Dependecy-Inversion Principle)。抽象不应依赖于细节,细节应该依赖于抽象。本原则几乎就是软件设计的正本清源之道。因为人解决问题的思考过程是先抽象后具体,从笼统到细节,所以我们先生产出的势必是抽象程度比较高的实体,而后才是更加细节化的实体。于是,细节依赖于抽象就意味着后来的依赖于先前的,这是自 然而然的重用之道。而且,抽象的实体代表着笼而统之的认识,人
8、们总是比较容易正确认识它们,而且本身也是不易变的,依赖于它们是安全的。依赖倒置原则适应 了人类认识过程的规律,是面向对象设计的标志所在。,湖南工程学院计算机与通信学院,授课:李远辉,Java 编程技术教程,接口隔离原则(Interface-Segregation Principle)。多个专用接口优于一个单一的通用接口。本原则是单一职责原则用于接口设计的自然结果。一个接口应该保证,实现该接口的实例对象 可以只呈现为单一的角色;这样,当某个客户程序的要求发生变化,而迫使接口发生改变时,影响到其他客户程序的可能生性小。,湖南工程学院计算机与通信学院,授课:李远辉,Java 编程技术教程,良性依赖原
9、则 不会在实际中造成危害的依赖关系,都是良性依赖。通过分析不难发现,本原则的核心思想是务实,很好地揭示了极限编程(Extreme Programming)中简单设计各重构的理论基础。本原则可以帮助我们抵御面向对象设计五大原则以及设计模式的诱惑,以免陷入过度设计(Over-engineering)的尴尬境地,带来不必要的复杂性。,湖南工程学院计算机与通信学院,授课:李远辉,Java 编程技术教程,OO设计原则 什么是设计原则?设计原则是基本的工具,应用这些规则可以使你的代码更加灵活、更容易维护,更容易扩展。基本原则:封装变化Encapsulate what varies.面向接口编程而非实现 C
10、ode to an interface rather than to an implementation.优先使用组合而非继承 Favor Composition Over Inheritance,湖南工程学院计算机与通信学院,授课:李远辉,Java 编程技术教程,SRP:The single responsibility principle 单一职责 系统中的每一个对象都应该只有一个单独的职责,而所有对象所关注的就是自身职责的完成。Every object in your system should have a single responsibility,and all the objec
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 类设计的基本经验 设计 基本 经验 PPT 课件

链接地址:https://www.31ppt.com/p-5640917.html