zoukankan      html  css  js  c++  java
  • 关于版本兼容性

    兼容性,有向上兼容和向下兼容的差别。

    新版本能够支持旧版本就是向下兼容。
    新版本有些时候可以向下兼容,但是很多时候也需要放弃旧代码的,这个时候旧的客户端就需要找到能够兼容他的老版dll。也就是产生了分支版本。

    第二,向上兼容是旧版本能够兼容新版本。如果向下向上都兼容,那就是完全的兼容,就没有必要产生分支版本。如果旧的版本能兼容新的,说明新版本没有增加了接口,但是缩小了接口。这也是产生版本的一个因素。

    对客户端来说,他需要找到最新的可兼容dll版本。首先他需要绑定一个最古老的可兼容版本,一般就是当前版本,然后运行时查找时候有,如果没有,运行时能够发现同族的其他版本。

    然后查询新版本,因为新版本能够知道自己能兼容哪些旧版本。

    版本产生的原因:
    向上不兼容向下兼容   常见
    向下不兼容向上兼容   修剪接口
    向上向下都不兼容     革命性版本
    向上向下都兼容       不需要添加新版本

    建议版本排序:
    革命性.修剪.常见.修订

    方案之一:

    其中,修订不影响兼容性。 

    前面数字相同后,常见项数字大的兼容小的。

    前面数字相同后,常见项相同,修剪项数字小的兼容大的。

    革命性项变化总是不兼容。

    对于接口编程来说,总是希望尽可能的利用兼容性,但是许多情况都是无法兼容的。并行执行不同版本的dll,是一个很好的解决方案。

  • 相关阅读:
    DRP-ThreadLocal简单的理解
    Android开源项目SlidingMenu本学习笔记(两)
    [RxJS] Displaying Initial Data with StartWith
    [RxJS] Updating Data with Scan
    [RxJS] Stopping a Stream with TakeUntil
    [RxJS] Reactive Programming
    [RxJS] Reactive Programming
    [RxJS] Reactive Programming
    [RxJS] Starting a Stream with SwitchMap & switchMapTo
    [RxJS] Reactive Programming
  • 原文地址:https://www.cnblogs.com/Nobel/p/1982747.html
Copyright © 2011-2022 走看看