目次 | 前の項目 | 次の項目 Java オブジェクト直列化仕様


5.4 ストリームのバージョン管理はだれが行うか

クラスの展開において、非展開クラスによって設定された規約を維持するのは、展開された (あとのバージョンの) クラスの責任です。これは、2 つの形をとります。まず、展開されたクラスは、元のバージョンによって与えられたインタフェースに関する既存の前提条件を壊すことはできません。 それによって、展開されたクラスを元のクラスの代わりに使用することができます。次に、元の (または前の) バージョンと通信するとき、展開されたクラスは、以前のバージョンが非展開クラスの規約を引き続き満たせるだけの、十分で同等な情報を与えなければなりません。

ここで説明した目的のために、各クラスは、そのスーパータイプによって定義されたインタフェースまたは規約を実装し、拡張します。クラスの新しいバージョン、たとえば、foo' は、foo のための規約を維持する必要があり、インタフェースを拡張したり、その実装を修正したりすることができます。

直列化を介したオブジェクト間の通信は、それらのインタフェースによって定義される規約には含まれていません。直列化は、実装間の私的なプロトコルです。各実装がそのクライアントによって期待される規約に従うように十分なやりとりをすることは、その実装の責任です。



目次 | 前の項目 | 次の項目
Copyright © 1997-1999 Sun Microsystems, Inc. All Rights Reserved.