[OOD设计原则]三.里氏替换原则(LSP)

三.里氏替换原则(LSP)
       里氏替换原则的核心思想就是:在任何父类出现的地方都可以用它的子类来替代。它的英文缩写是LSP,英文全称是Liskov Substitution Principle。
       其实里氏替换原则的意思就是:同一个继承体系中的对象应该有共同的行为特征。里氏代换原则关注的是怎样良好地使用继承,也就是说不要滥用继承,它是继承复用的基石。


例如: 
       有一个数据库操作流程, 假设是创建表1, 写入数据到表1, 创建表2, 写入数据到表2.
首先, 这个操作流程的数据库系统是不确定的, 可能是MySQL, 可能是Oracle.
但是流程是一致的:"创建表1, 写入数据到表1, 创建表2, 写入数据到表2".

       那么, 我们可以把数据库系统抽象为父类(DataBaseFather), 然后实现操作流程.
如果使用MySQL, 那么可以生成DataBaseFather的一个子类MySQLClass, 
如果使用Oracle, 那么可以生成DataBaseFather的一个子类OracleClass, 
利用面向对象的多态, 即实现"里氏替换原则"

      因为操作流程是固定的, 当实现了操作流程并测试后, 修改了数据库系统也不需要对操作流程重新测试.

      其实从举例中, 我们也可以发现, 在我们做系统设计的时候, 我们应该尽量提取系统中的"经常变化"和"不变化"的地方.
"经常变化"的地方就意味着经常修改, 经常测试. 而"不变化"的地方基本上是固定了, 测试一遍后基本上可以了.
如果没有很好的提取系统中的"经常变化"和"不变化"的地方, 那么会引起"不变化的地方"要跟着"经常变化的地方"来变化. 这是不好的.

说白了, 就是"经常变化的地方"和"不变化的地方"一定要解耦.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值