2022年程序设计七大原则 .pdf
《2022年程序设计七大原则 .pdf》由会员分享,可在线阅读,更多相关《2022年程序设计七大原则 .pdf(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件设计的七大原则设计模式遵循的一般原则:1.开-闭原则 (Open-Closed Principle, OCP):一个软件实体应当对扩展开发 ,对修改关闭 .说的是 ,再设计一个模块的时候 ,应当使这个模块可以在不被修改的前提下被扩展 .换言之 ,应当可以在不必修改源代码的情况下改变这个模块的行为,在保持系统一定稳定性的基础上,对系统进行扩展。这是面向对象设计(OOD )的基石,也是最重要的原则。2.里氏代换原则 (Liskov Substitution Principle, 常缩写为.LSP) (1).由 Barbar Liskov(芭芭拉 .里氏)提出,是继承复用的基石。(2).严格表达
2、 :如果每一个类型为T1 的对象 o1,都有类型为 T2 的对象 o2,使得以 T1 定义的所有程序P 在所有的对象 o1 都代换称 o2 时,程序 P 的行为没有变化 ,那么类型 T2 是类型 T1的子类型 . 换言之 ,一个软件实体如果使用的是一个基类的话,那么一定适用于其子类,而且它根本不能察觉出基类对象和子类对象的区别.只有衍生类可以替换基类,软件单位的功能才能不受影响, 基类才能真正被复用,而衍生类也能够在基类的基础上增加新功能。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - -
3、第 1 页,共 8 页 - - - - - - - - - (3).反过来的代换不成立(4). 中说:白马,马也; 乘白马 ,乘马也 .骊马(黑马),马也;乘骊马 ,乘马也 . (5).该类西方著名的例程为:正方形是否是长方形的子类(答案是 否)。类似的还有椭圆和圆的关系。(6). 应当尽量从抽象类继承,而不从具体类继承,一般而言,如果有两个具体类A,B 有继承关系 ,那么一个最简单的修改方案是建立一个抽象类C,然后让类 A 和 B成为抽象类C 的子类.即如果有一个由继承关系形成的登记结构的话,那么在等级结构的树形图上面所有的树叶节点都应当是具体类;而所有的树枝节点都应当是抽象类或者接口 .
4、(7).基于契约设计 (Design By Constract), 简称 DBC这项技术对LISKOV 代换原则提供了支持.该项技术Bertrand Meyer 伯特兰做过详细的介绍 : 使用 DBC,类的编写者显式地规定针对该类的契约.客户代码的编写者可以通过该契约获悉可以依赖的行为方 式 . 契 约 是 通 过 每 个 方 法 声 明 的 前 置 条 件(preconditions) 和后置条件 (postconditions) 来指定的 .要使一个方法得以执行,前置条件必须为真 .执行完毕后,该方法要保证后置条件为真.就是说 ,在重新声明派生类中的例程(routine) 时,只能使用相等
5、或者更弱的名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 8 页 - - - - - - - - - 前置条件来替换原始的前置条件,只能使用相等或者更强的后置条件来替换原始的后置条件. 3.依赖倒置原则 (Dependence Inversion Principle), 要求客户端依赖于抽象耦合. (1)表述 :抽象不应当依赖于细节,细节应当依赖于抽象.(Program to an interface, not an implementaction) (2)表述二 :针对
6、接口编程的意思是说,应当使用接口和抽象类进行变量的类型声明,参量的类型声明 ,方法的返还类型声明 ,以及数据类型的转换等.不要针对实现编程的意思就是说,不应当使用具体类进行变量的类型声明 ,参量类型声明 ,方法的返还类型声明 ,以及数据类型的转换等 . 要保证做到这一点 ,一个具体的类应等只实现接口和抽象类中声明过的方法,而不应当给出多余的方法. 只要一个被引用的对象存在抽象类型,就应当在任何引用此对象的地方使用抽象类型,包括参量的类型声明,方法返还类型的声明 ,属性变量的类型声明等 . (3) 接口与抽象的区别就在于抽象类可以提供某些方法的部分实现 ,而接口则不可以 ,这也大概是抽象类唯一的
7、优点 .如果向一个抽象类加入一个新的具体方法,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 8 页 - - - - - - - - - 那么所有的子类型一下子就都得到得到了这个新的具体方法 ,而接口做不到这一点.如果向一个接口加入了一个新的方法的话,所有实现这个接口的类就全部不能通过编译了 ,因为它们都没有实现这个新声明的方法.这显然是接口的一个缺点 . (4)一个抽象类的实现只能由这个抽象类的子类给出,也就是说 ,这个实现处在抽象类所定义出的继承的登记结构中 ,而由于
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年程序设计七大原则 2022 程序设计 七大 原则
限制150内