10

ソフトウェア更新に関する設計パターンを知っている人はいますか? 具体的には、古いファイル/設定を最新バージョンに変換するためのパターンが欲しいです。

私が考えることができる最善の解決策は、各バージョンから次のバージョンに変換する方法に関する一連のルールを用意することです (たとえば、v1.0 から v1.1、v1.1 から v1.2 など)。次に、ファイル/設定を最新バージョンに変換するには、すべての変換ルールを順番に実行します。

これは物事を行うための非常にエレガントな方法とは思えません。より良い方法はありますか?

4

1 に答える 1

5

DBを最新バージョンに移行するためのバージョン管理システムを含むシステムで働いていましたが、そのように機能しました。私たちが行った唯一の改善点は、時間がかかるプロセスであるため、すべてのバージョンを通過することを避けたい場合があったことです。これにより、バージョン 1.3 を使用していて最新バージョンに移行したい場合、任意のバージョンから任意のバージョンへの移行を定義できます。移行元のスクリプトがあります。

  1. 1.3~1.4
  2. 1.4~1.5
  3. 1.5~1.6
  4. 1.6~1.7
  5. 1.7~1.8
  6. 1.4~1.7

単一のスクリプトを使用して 1.4 から 1.7 までの 3 つのバージョンに移行し、1、6、および 5 を使用できることが自動的に検出されます。ただし、移行に時間がかかる場合にのみ価値があります...

データを実際に移行する必要はなく、最新バージョンの形式で使用するだけの場合は、オブジェクト構成を使用してアダプタ パターンを使用し、「1.3」形式のオブジェクトを「1.8」形式に変換することで、同じことを実現できます。 " 中間の一連のアダプターを使用してフォーマットします。

コメントへの返信: 残念ながら、1.4 から 1.7 までを手動で行う必要がありました。最適化された更新スクリプトを個々の更新スクリプトから順番に実行することなく構成できるようにするには、かなりスマートなものが必要です。

于 2012-07-09T03:25:45.313 に答える