zoukankan      html  css  js  c++  java
  • 《架构整洁之道》之里氏替换原则

    1988年,Barbara Liskov在描述如何定义子类型时写下这样一段话:
    这样需要的是一种可替换性:如果对于每个类型是S的对象o1都存在一个类型为T的对象o2,能使操作T类型的程序P在用o2替换o1时行为保持不变,我们就可以将S称为T的子类型

    在面向对象这场编程革命兴起的早起,我们的普遍认知正如上文所说,认为LSP只不过是指导如何使用继承关系的一种方法,然而随着时间的推移,LSP逐渐演变成一种更广泛、指导接口与其实现方式的设计原则。

    这里提到的接口可以有多种形式-可以是Java风格的接口,具有多个实现类;也可以像Ruby一样,几个类公用一样的方法签名,甚至可以是几个服务响应同一个REST接口。

    LSP适用于上述所有的应用场景,因为这些场景中的用户都依赖于一种接口,并且都期待实现该接口的类之间能具有可替换性。

    LSP可以且应该被应用于软件架构层面,因为一旦违背了可替换性,该系统架构就不得不为此增添大量复杂的应对机制。

  • 相关阅读:
    sql语句中字符串分解查询的一种解决方法。
    VMware虚拟机的网络连接
    sql注入
    mvnrepository.com jar包下载
    局部刷新与json
    初涉json
    ios UIKit 基础控件创建与属性
    实用数学函数
    OC中的随机数函数——arc4random()
    OC中关于字符串的操作
  • 原文地址:https://www.cnblogs.com/youcong/p/13282595.html
Copyright © 2011-2022 走看看