zoukankan      html  css  js  c++  java
  • 软件开发中关于向后兼容的理解

    假设有A、B两个程序,
    这两个程序可能是同一小组的两个人来维护的,也可能是两个不同小组来维护的,
    也可能是两个不同部门来维护的,甚至有可能是两个不同的公司来负责维护的。

    现在假设A程序对某函数进行了修改,比如原先通过
    kill(pid, SIGSTOP)向B程序发送SIGSTOP信号,而现在却通过
    kill(pid, SIGUSR1)向B程序发送SIGUSR1信号。
    原先B程序是在收到SIGSTOP这个信号之后才去做相应的处理,
    而A程序改成了发送SIGUSR1,从而导致问题的出现。

    通常这种不向后兼容的情况有:
    1. A程序接口参数变化,这会导致B程序出现编译时或运行时错误;
    2. A程序接口功能减少,这会导致B程序功能的减少;
    3. A程序接口移除,这会导致B程序运行时错误。

    实例演示:
    1. A + B OK;
    2. A + C OK,但是A + B NG;
    这里A类似于库函数,而B和C类似于基于库函数的应用程序。
    向后兼容是对函数或功能提供方提出的要求。

    问题:
    A1 + B OK;
    A2 + C OK;
    那A1 + C呢?
    这里是对应用程序的要求(有难度)。

  • 相关阅读:
    UVa 116 单向TSP(多段图最短路)
    POJ 1328 Radar Installation(贪心)
    POJ 1260 Pearls
    POJ 1836 Alignment
    POJ 3267 The Cow Lexicon
    UVa 1620 懒惰的苏珊(逆序数)
    POJ 1018 Communication System(DP)
    UVa 1347 旅行
    UVa 437 巴比伦塔
    UVa 1025 城市里的间谍
  • 原文地址:https://www.cnblogs.com/james1207/p/3329057.html
Copyright © 2011-2022 走看看