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

  • 相关阅读:
    11,Django组件分页器
    10,Django于ajax
    阿里云安装Nexus搭建Maven私有仓库
    maven 自动部署到tomcat
    linux 7.2 下安装maven
    小程序防止遮罩层穿透
    Linux 下安装JDK
    Linux 命令未自动提示补全
    nginx 、tomcat 集群配置、shiro Session 共享
    nginx负载均衡配置
  • 原文地址:https://www.cnblogs.com/youcong/p/13282595.html
Copyright © 2011-2022 走看看