- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
类设计及的基本经验
* 授课:李远辉 类设计的基本经验 OO设计原则 湖南工程学院计算机与通信学院 湖南工程学院计算机与通信学院 授课:李远辉 Java 编程技术教程 1、类要单一 2、加强内聚,松散耦合 3、好的封装性 4、类的粒度要合理 5、实现类不能依赖它的使用类 6、应考虑灵活性,也就是可配置、可维护 可配置:可以通过修改配置文件来选择系统提供的功能 可维护:可以很方便地修改功能,容易定位bug,功能隔离较好,不会牵一发而动全身 湖南工程学院计算机与通信学院 授课:李远辉 Java 编程技术教程 7、要考虑性能、考虑可伸缩性 综合性能、性能定点、性能拐点,软件的体系结构决定了性能的顶点 8、要考虑今后可能的变化,也就是可扩展性 9、要考虑合理的复用 10、要合理地考虑接口和抽象类的使用 优先使用接口,抽象类既要约束子类的行为,又要为子类提供公共的功能。 11、尽量减少类与协作类的交互次数和交互信息的量 12、父类不应知道子类的信息,子类必须知道父类的信息 13、更多地使用类的组合,而不是继承 14、访问对象必须通过接口,不能绕过接口直接去访问。 湖南工程学院计算机与通信学院 授课:李远辉 Java 编程技术教程 面向对象的设计原则 (1)单一职责原则:就一个类而言,应该仅有一个引起变化的原因。 (2)开放--封闭原则:软件实体应该是可以扩展的,但是不可修改。 (3)替换原则:子类应该能够替换他的父类。 (4)依赖倒置原则:抽象不应该以来细节,细节应该以来抽象 (5)接口隔离原则:不应强迫用户依赖他们不用的方法,接口属于客户,不属于他所在的类层次。 (6)重用发布等价原则:重用的粒度就是发布的粒度。 (7)共同封闭原则:包所有类应该对于同一类性质的变化应该是共同封闭的。 (8)共同重用原则:一个包中的所有类应该是共同重用的。如果重用包中的一个类,就应该重用包中所有类。 (9)无环依赖原则:在包的依赖图中不应该存在环。 (10)稳定依赖原则:朝着稳定依赖的方向进行依赖。 (11)稳定抽象原则:包的抽象程度应该和依赖的程度一致。 湖南工程学院计算机与通信学院 授课:李远辉 Java 编程技术教程 依赖是和变化紧密联系在一起的概念。 由于依赖关系的存在,变化在某处发生时,影响会波及开来,造成很多修改工作,这就是依赖的危害。可以说变化是始作俑者,依赖是助纣为虐。我们可以不去拥抱变化吗?不可以。未来将是越来越不可预测,这是新经济最具挑战性的方面之一。商务和技术上的瞬息万变会产生变化,这既可以看作要防范的威胁,也可以看作应该欢迎的机遇。既然变化不可避免,我们所能做的就是处理好依赖关系,将变化造成的影响波及范围尽量减小。 湖南工程学院计算机与通信学院 授课:李远辉 Java 编程技术教程 单 一职责原则(Single-Resposibility Principle)。 对一个类而言,应该仅有一个引起它变化的原因。本原则是我们非常熟悉地高内聚性原则的引申,但是通过将职责极具创意地 定义为变化的原因,使得本原则极具操作性,尽显大师风范。同时,本原则还揭示了内聚性和耦合生,基本途径就是提高内聚性;如果一个类承担的职责过多, 那么这些职责就会相互依赖,一个职责的变化可能会影响另一个职责的履行。其实OOD的实质,就是合理地进行类的职责分配。 湖南工程学院计算机与通信学院 授课:李远辉 Java 编程技术教程 开放封闭原则 (Open-Closed principle)。 软件实体应该是可以扩展的,但是不可修改。本原则紧紧围绕变化展开,变化来临时,如果不必改动软件实体裁的源代码,就能扩充它 的行为,那么这个软件实体设计就是满足开放封闭原则的。如果说我们预测到某种变化,或者某种变化发生了,我们应当创建抽象类来隔离以后发生的同类变化。在 Java中,这种抽象是指抽象基类或接口;在C++中,这各抽象是指抽象基类或纯抽象基类。当然,没有对所有情况都贴切的模型,我们必须对软件实体应该面 对的变化做出选择。 湖南工程学院计算机与通信学院 授课:李远辉 Java 编程技术教程 Liskov替换原则(Liskov-Substituion Principle)。 子类型必须能够替换掉它们的基类型。本原则和开放封闭原则关系密切,正是子类型的可替换性,才使得使用基类型模块无需修改就可 扩充。Liskov替换原则从基于契约的设计演化而来,契约通过为每个方法声明先验条件和后验条件;定义子类时,必须遵守这些先验条件和后 验条件。当前基于契的设计发展势头正劲,对实现软件工厂的组装生产梦想是一个有力的支持 湖南工程学院计算机与通信学院 授课:李远辉 Java 编程技术教程 依赖倒置原则(Dependecy- Inversion Principle)。 抽象不应依赖于细节
您可能关注的文档
- 第二节及物质的量浓度.ppt
- 第五章及 柴油机混合气的形成和燃烧0809.ppt
- 第五章及 柴油机混合气的形成和燃烧xin.ppt
- 第五章及 脂类代谢.ppt
- 第五章及 质 谱.ppt
- 第五章及 分批法.ppt
- 第五章及 产品成本计算方法.ppt
- 第五章及 液相传质步骤动力学.ppt
- 第五章及 细胞内膜系统与囊泡转运.ppt
- 第五章及空间数据采集与处理.ppt
- 发电机保护原理—发电机转子一点接地保护(继电保护).pptx
- 2025年制造业供应链重构报告:数字化赋能下的协同制造策略.docx
- 2025年康复医疗连锁机构康复设备研发与创新研究报告.docx
- 2025年工业自动化控制网络技术专利分析报告.docx
- 2025年高铁建设对长三角地区产业结构优化影响研究报告.docx
- 江西省宜春市2025届高三下学期二模数学试题.pdf
- 2025年农村零售市场消费升级驱动因素研究:渠道拓展与模式创新报告.docx
- 乐安县项目可行性研究报告.docx
- 2025年生态修复工程生物多样性保护策略与实践分析报告.docx
- 继电保护的概述—微机保护装置硬件与采样(继电保护).pptx
文档评论(0)