zoukankan      html  css  js  c++  java
  • 编程法侧

    刚入手时感觉这个理由那个理由不如自己自由发挥,但写出来的代码实在太乱,维护难度非常大。苦硬自己设计时去多想这些法则,结果最好代码大大改观。

    1.开闭法侧 OCP. 模块应该易于扩展(开放),但免于修改(关闭)。

    这样的结构是易于扩展,相互隔离,实现的技术是动态多态。

    2.依赖反转法则 DIP

     依赖抽象而不依赖具体。

    高层模块不再依赖于含有实现细节的模块,而是依赖抽象的接口。通过抽象的接口取代被依赖的中间层,保证了上层结构的稳定。

    3.接口隔离法则 ISP

     不应该强迫客户端依赖于它们用不上的方法。因不同的客户需要划分多个不同的专用接口。

    type

    TSports=class(Tobject)

     procedure Run;

     procedure Fly;

     procedure jump;

     procedure cycle;

    end;

    //将上面这个类改进分隔为以下,当然分隔是按需求进行的

     IOpicA=class(IInterface)

    ['{0CBC0EC1-BCDC-418C-A35E-595D2DE78029}'

     procedure Run;

     procedure Fly;

    end;

    IOpicB=class(IInterface)

    ['{0CBC0EC1-BCDC-418C-A35E-595D2DE78019}'

     procedure jump;

     procedure cycle;

    end;

    4.单一职责法则 SRP

     一个类应该公有一个原因导致其变化。“一个原因”好比工作人员的职责,比如小区一个保安,假定他的职责是检查进出车辆,那么只有当有车进或有车出时,将会触发他上前进行检查。当一个类包含多个职责,且它们的关系错综复杂时,分离不当,会有循环依赖问题。这时可以用接口隔离法则进行分离。

  • 相关阅读:
    Ubuntu 网络代理配置
    WSL2 环境配置
    两台笔记本电脑实现同一wifi下虚拟主机网络实现互通
    Linux /dev/loop0文件详解
    Excel两张表查重,返回True
    计算机网络基础/进制转换/企业级子网IP划分
    leetcode 2030. 含特定字母的最小子序列
    nginx https
    kubernetes(二十四)ingress https
    求两个向量的旋转矩阵 E
  • 原文地址:https://www.cnblogs.com/carcode/p/12507903.html
Copyright © 2011-2022 走看看