程序设计原则

用户头像
南宫煌
关注
发布于: 2020 年 06 月 16 日
程序设计原则

如果说代码是我们手中的兵器,那设计原则就是我们使用兵器时的界定。这些原则能够使得我们兵器保持更加锋利、锐不可挡。



设计原则绵延二十余年,经受住了时间的考验。



设计原则沉淀到现在,目前主要有六大设计原则。分别是单一职责原则;开闭原则;里氏替换原则;接口隔离原则;依赖倒置原则;最少知道原则。



本文主要介绍里氏替换原则。

里氏替换原则,原文是这么描述的:If S is a subtype of T , then objects of type T may be replaced with objects of type S , without breaking the program.

意思就是说如果S是T的子类,那么程序中的T都可以用S替换,而不破坏程序的逻辑性和正确性。



其实,里氏替换原则很好理解,就是用来指导继承关系中子类该如何设计的原则。核心思想就是“design by Contract”。这里的约定包括:函数声明要实现的功能;对输入、输出、异常的约定;甚至包括注释中所罗列的任何特殊说明。



课上讲的一个例子:子类抛出的异常是父类的子类还是父类?



可以根据定义用反证法进行验证:类B为类A的子类,假定一段程序调用类A,捕获类A抛出的异常。那么,根据里氏替换原则,只将类A替换成类B。如果类B抛出的异常比类A抛出的异常范围更大的话,那么这段程序势必捕获不到这个异常。所以,类B抛出的异常一定是类A抛出异常的子类,才能满足里氏替换原则。



发布于: 2020 年 06 月 16 日 阅读数: 24
用户头像

南宫煌

关注

还未添加个人签名 2019.10.08 加入

还未添加个人简介

评论

发布
暂无评论
程序设计原则