概述
6 模块设计
面向对象的设计原则
单一职责原则
- 定义: 在软件系统中一个类只负责一个功能领域的相应职责
- 一个类承担的指责越多,被复用的可能性就越小。
- 类的指责体现在两个方面:数据职责、行为职责
- 高内聚、低耦合
单一职责原则实例:
转单一职责
开闭原则
- 定义:一个软件实体,应该对扩展开放,对修改关闭。 模块可以在不被修改的前提下被扩展,实现在不修改源码的情况下改变这个模块的行文。
- 软件实体可以指一个软件模块、一个有多个类组成的局部结构或一个独立的类。
- 关键: 抽象化
- 使用开闭原则,对灵活性喝可扩展性进行评价
实例:
根据开闭原则修改
里氏代换原则
- 一个软件如果使用的是一个父类的话, 那么一定适用于其子类, 而察觉不出父类对象和子类对象的区别。 也即是说,在软件里面, 把父类替换成它的子类, 程序的行为不会有变化。
- 子类型必须能够替换掉它们的父类型。
当满足以下条件的时候,一个子类对父类就是可替换的:
- 子类支持父类的所有方法,并且他们的签名是兼容的
- 子类的方法必须满足父类方法的规格说明。两个类的犯法不一定要完全相同,但是子类必须不违反父类放大的前置条件和后置条件。
- 子类必须保留父类中声明了的所有性质。
主要用途:确定社么时候一个而对象可以安全的被另一个对象所替换。
倒转依赖原则
- 定义: 高层模块不应依赖底层模块,他们都应该依赖抽象。抽象不应该依赖于细节,细节应该依赖于抽象。
- 要针对接口编程,不要针对实现编程
- 代码要依赖抽象的类,而不依赖具体的类
- 常用实现:在代码中使用抽象地类,将具体的类放在配置文件中
- 关键: 抽象耦合
实例;
由于需求的变化,该系统可能需要增加新的数据源或者新的文件格式,每增加一个新的类型的数据源或者新的类型的文件格式,客户类MainClass都需要修改源代码,以便使用新的类,违背了开闭原则。现使用依赖倒转原则对其进行重构。
合成复用原则
- 尽量使用对象组合而不是进程来达到复用目的
- 合成复用原则就是指在一个新的对象里通过关联关系(包括组合关系和聚合关系)来使用一些已有的对象,使之成为新对象的一部分;新对象通过委派调用已有对象的方法达到复用其已有功能的目的
- 继承复用: 简单,易于扩展。破环系统的封装性,从基类继承而来的是实现时静态的,不能在运行时改变,缺少灵活性。(白箱复用)
- 组合/聚合复用:耦合度相对较低,选择性地调用成员对象,可以在运行时动态进行。(黑箱复用)
- 组合/聚合:是系统更加灵活,降低类与类的耦合度。
迪米特法则
- 每个软件单位对其他的单位都只有最少的知识,并且局限于那些和本单位密切相关的软件单位。
- 一个软件实体应当尽可能少的与其他实体发生相互作用。
最后
以上就是痴情煎蛋为你收集整理的软件工程 第六章 模块设计6 模块设计的全部内容,希望文章能够帮你解决软件工程 第六章 模块设计6 模块设计所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复