zoukankan      html  css  js  c++  java
  • SOLID设计原则

    SOLID设计原则
    Single Responsibility Principle单一职责原则
    单一职责原则(SRP)表明一个类有且只有一个职责。
    一个类就像容器一样,它能添加任意数量的属性、方法等。
    然而,如果你试图让一个类实现太多,很快这个类就会变得笨重。
    任意小的改变都将导致这个单一类的变化。当你改了这个类,你将需要重新测试一遍。
    如果你遵守 SRP,你的类将变得简洁和灵活。
    每一个类将负责单一的问题、任务或者它关注的点,这种方式你只需要改变相应的类,只有这个类需要再次测试。
    SRP 核心是把整个问题分为小部分,并且每个小部分都将通过一个单独的类负责。

    Open Close Principle 开闭原则
    开放封闭原则(OCP)指出,一个类应该对扩展开放,对修改关闭。
    这意味一旦你创建了一个类并且应用程序的其他部分开始使用它,你不应该修改它。
    为什么呢?因为如果你改变它,很可能你的改变会引发系统的崩溃。
    如果你需要一些额外功能,你应该扩展这个类而不是修改它。使用这种方式,现有系统不会看到任何新变化的影响。
    同时,你只需要测试新创建的类。

    Liskvo Substitution Principle 里氏替换原则
    里氏替换原则指出,派生的子类应该是可替换基类的,也就是说任何基类可以出现的地方,子类一定可以出现。
    值得注意的是,当你通过继承实现多态行为时,如果派生类没有遵守LSP,可能会让系统引发异常。
    所以请谨慎使用继承,只有确定是“is-a”的关系时才使用继承。

    Interface Segregation Principle 接口隔离原则
    接口隔离原则(ISP)表明类不应该被迫依赖他们不使用的方法,也就是说一个接口应该拥有尽可能少的行为,它是精简的,也是单一的。

    Dependency Inversion Pronciple 依赖反转原则
    依赖倒置原则(DIP)表明高层模块不应该依赖低层模块,相反,他们应该依赖抽象类或者接口。
    这意味着你不应该在高层模块中使用具体的低层模块。
    因为这样的话,高层模块变得紧耦合低层模块。
    如果明天,你改变了低层模块,那么高层模块也会被修改。
    根据DIP原则,高层模块应该依赖抽象(以抽象类或者接口的形式),低层模块也是如此。
    通过面向接口(抽象类)编程,紧耦合被移除。
    那么什么是高层模块,什么是低层模块呢?
    通常情况下,我们会在一个类(高层模块)的内部实例化它依赖的对象(低层模块),这样势必造成两者的紧耦合,任何依赖对象的改变都将引起类的改变。

    文字引用:https://www.cnblogs.com/OceanEyes/p/overview-of-solid-principles.html#_label0

  • 相关阅读:
    01_根据Id查询User的数据
    rest_framework常用设置
    django AnonymousUser
    获取视频时长和文件大小
    xadmin增加用户 除了账号和密码 添加其他信息
    Django 重写用户模型
    xadmin 常见错误
    Django在根据models生成数据库表时报 __init__() missing 1 required positional argument: 'on_delete'
    xadmin设置
    python3安装xadmin出现 UnicodeDecodeError: 'gbk' codec can't decode byte 0xa4 in position 3444: illegal multibyte sequence
  • 原文地址:https://www.cnblogs.com/maomaodesu/p/11634222.html
Copyright © 2011-2022 走看看