[OOD设计原则]三.里氏替换原则(LSP)
发布时间:2020-12-13 19:45:50 所属栏目:百科 来源:网络整理
导读:三.里氏替换原则(LSP) 里氏替换原则的核心思想就是:在任何父类出现的地方都可以用它的子类来替代。它的英文缩写是LSP,英文全称是Liskov Substitution Principle。 其实里氏替换原则的意思就是:同一个继承体系中的对象应该有共同的行为特征。里氏代换原则
三.里氏替换原则(LSP) 里氏替换原则的核心思想就是:在任何父类出现的地方都可以用它的子类来替代。它的英文缩写是LSP,英文全称是Liskov Substitution Principle。 其实里氏替换原则的意思就是:同一个继承体系中的对象应该有共同的行为特征。里氏代换原则关注的是怎样良好地使用继承,也就是说不要滥用继承,它是继承复用的基石。 例如: 有一个数据库操作流程,假设是创建表1,写入数据到表1,创建表2,写入数据到表2. 首先,这个操作流程的数据库系统是不确定的,可能是MySQL,可能是Oracle. 但是流程是一致的:"创建表1,写入数据到表2". 那么,我们可以把数据库系统抽象为父类(DataBaseFather),然后实现操作流程. 如果使用MySQL,那么可以生成DataBaseFather的一个子类MySQLClass, 如果使用Oracle,那么可以生成DataBaseFather的一个子类OracleClass, 利用面向对象的多态,即实现"里氏替换原则" 因为操作流程是固定的,当实现了操作流程并测试后,修改了数据库系统也不需要对操作流程重新测试. 其实从举例中,我们也可以发现,在我们做系统设计的时候,我们应该尽量提取系统中的"经常变化"和"不变化"的地方. "经常变化"的地方就意味着经常修改,经常测试. 而"不变化"的地方基本上是固定了,测试一遍后基本上可以了. 如果没有很好的提取系统中的"经常变化"和"不变化"的地方,那么会引起"不变化的地方"要跟着"经常变化的地方"来变化. 这是不好的. 说白了,就是"经常变化的地方"和"不变化的地方"一定要解耦. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- c# – 无法从Visual Studio 2012连接到SQL Server Express
- SQLite3 fts3 AUTOINCREMENT无法正常工作
- Ajax请求访问action判断文件是否存在
- postgresql8.4在ubuntu9下的安装与基本配置
- 脑洞大开!使用Perf深入研究Oracle内部(有彩蛋)
- PostgreSQL与Innodb并发控制大比拼
- C17中是否使用“std :: is_invocable”替换“std :: is_cal
- React Native Android 开发环境搭建,只需4步
- c – GTK:完全摆脱系统主题/ CSS
- 使用正则表达式删除Javascript中的HTML标记