2011-11-11 15 views
1

作成しているプログラムのブックマークを保存する必要があります。ブックマークは、Xposition、Yposition、およびZoomです。すべてのブックマークを読み込んでテキストファイルに書き込むか、またはそれらをブックマークオブジェクトに入れてシリアライズする必要があります。私はどちらがより良いオブジェクト指向設計と見なされるかに興味があります。ユーザーファイルをテキストファイルまたはシリアライズされたオブジェクトに保存する

答えて

0

とにかく私はクラスブックマークを作成したいと思います。次に、メソッドserialize()deserialize()にBookmarkSerializerというインターフェイスを作成します。その後、私はBookmarkSerializerの最初の実装を作成することができます。たとえば、ネイティブのJavaのシリアライゼーション、プレーンテキスト、CSV、XMLなどに基づいている可能性があります。したがって、1つを選択して実装し、アプリケーションで使用できます。

1つの実装が十分に私に役立たない場合、私は他を追加することができます。要は、このケースでは、シリアライザ自体の初期化を除いて、私のアプリケーションで何も変更する必要はありません。

あなたのケースでは、最も単純なCSV実装から始めて、十分でない場合は、必要な数の実装を追加する必要があります。

+0

私はすでにブックマークオブジェクトを作成しましたが、テキストファイルに書き込まれる文字列を返すgetString()メソッドを計画していました。同様に動作するようですが、この方法で多くのブックマーク用に1つのテキストファイルを作成できます。 – Fractaly

+0

正常に実装され、欠陥なしで作業しています(まだ) – Fractaly

0

オブジェクトの使用は、通常、オブジェクト指向設計にとって最適です。サポートを容易にするため

、私はその(右のそれを確認して)簡単に表示および編集などのテキストファイルを使用します(それを修正するために)

+0

私はテキストファイルに行くと思います。技術に精通したユーザーはおそらくそれを好むでしょう。 thx – Fractaly

+1

CSV形式のデータファイルを持っているため、スプレッドシートアプリで編集できます。 –

0

Thisは、あなたの質問に答えるかもしれません。

システム間の互換性を容易にするために、テキストファイルをXMLまたはJSON形式にすることをお勧めします。

シリアライズは素晴らしいですが、シリアライズするオブジェクトを変更することを決断するのは難しくなります。

シリアル化を行う場合は、オブジェクトにSERIAL_VERSION_UIDを定義してください。詳細はhereで読むことができます。

1

私は、クロスプラットフォームのテキストファイルに保存することをお勧めします。実際には、オブジェクト指向の考慮事項ではありません。なぜなら、テキストファイルのアプローチを使用しているとき、つまりテキストファイルソースを持つデータアクセスオブジェクトがooの概念に違反していないときには、まだプログラミングすることができるからです。

1

javaシリアル化は壊れやすいので、あなたのプログラムの複数のバージョンにまたがっている可能性がある、長い時間、いくつかの設定データを保持することを意図しているなら、おそらくテキストファイルが最適です。

フォーマットは本当にあなた次第です、XML、JSON、CSV

あなたがJavaのシリアライズを使用することを決めた場合、私はHashMapの

にデータを格納し、マップ

あなたの周りをアクセサラップすることをお勧めします
public class Config { 

    private HashMap map; 
    Congif(HashMap map) { this.map = map; } 

    <T> T get(Class<T> clazz, String key) { 
     return (T) map.get(key); 
    } 

    void put(String key, Serializable value) { 
     map.put(key, value); 
    } 
} 
関連する問題