• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
james1207

博客园    首页    新随笔    联系   管理    订阅  订阅

软件开发中关于向后兼容的理解

假设有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呢?
这里是对应用程序的要求(有难度)。

 

posted @ 2013-09-18 19:34  Class Xman  阅读(268)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3