zoukankan      html  css  js  c++  java
  • 耦合

    1.1.1. 低耦合

    耦合指的两个系统(模块)联系紧密。共7种,除掉无直接耦合和高级语言不存在的内容耦合,共5种。耦合从低到高,分别是:数据耦合、标记耦合、控制耦合、外部耦合、公共耦合。

    1. 数据耦合两例

    JiSuan(5, 3);

    CGouMaiXinXi gouMai = new CGouMaiXinXi();

    //...

    JiSuan(gouMai);

    2. 标记耦合六例

    参数是json字符串,如:{"价格":10,"数量":1}

    参数为文件名,文件格式是调用方和被调用方约定的。

    C#带参数的线程函数,函数的入口参数为object类型;C++的线程入口函数,参数为LPVOID

    调用Com

    halconHTuple

    _variant_t和VARIANT

    3. 控制耦合

    移动(方向)

    4. 外部耦合

    共用一个静态成员变量或全局变量。

    5. 公共耦合

    访问同一片内存区域。

    6. 内容耦合4

    Window2000Window98C语言可以直接操作显示内存指针,来改变控制台内容。至少有10%的几率会让操作系统崩溃。

    hook技术用于监控软件。

    破解软件、逆向工程。

    游戏修改,外挂。

    7. 各种耦合优缺点

    耦合名称

    优缺点

    数据耦合

    如果结构发生变化,编译的时候,就能发现错误。

    标记耦合

    如果结构发生变化,运行时才能发现错误。

    控制耦合

    控制耦合,大幅降低可测试性。

    外部耦合

    不知道会有多少个模块访问,所以确定性弱。相对公共耦合,可以通过访问权限(publicprivate等)减少风险

    公共耦合

    不知道会有多少个模块访问,确定性弱。

    公共耦合与标记耦合的区别:后者只会在参数、返回值使用共同资源。

    耦合只是一方面,具体情况具体分析。比如:标记耦合大大增加了灵活性和互操作性,所以常常用于系统间通信。外部耦合,大大降低了代码量,非常适合于一些质量要求不高的小工具。公共耦合适合的性能要求高的模块,即使是性能要求高的系统,绝大部分模块的性能要求并不高。

    2021年目标:完成新书《闻缺陷则喜》,本博客右上公告有下载、阅读链接。
  • 相关阅读:
    PHP的反射机制
    mysqlbinlog
    PHP调用java的class
    ecshop session机制
    memory_limit session.cache_expire ecshop初始化注释说明
    ecshop运行超过30秒超时的限制解决办法
    如果你想拥有事业,而非仅仅是工作
    扎克伯格谈”人际交往”趋势
    Magento架构分析,Magento MVC 设计分析
    推荐的PHP编码规范
  • 原文地址:https://www.cnblogs.com/he-zhidan/p/15675256.html
Copyright © 2011-2022 走看看