私のアプリケーションには、名前が示すように、同じ継承ツリーに属していない3つのクラスUser
があります。各クラスには、いくつかの(異なる)パラメーター、つまり、、、を受け取るコンストラクターがあります。各コンストラクターが必要とするパラメーターの数は、すべてのクラスで同じではありません。txtファイルからいくつかのデータを読み取り、データをパラメーターとして上記のコンストラクターに渡す新しいオブジェクトを作成するクラスを作成しました。このクラスのコードは、オブジェクトを作成する1つのメソッドを除いて、すべてのタイプで明らかに同じです。したがって、3つの異なるクラスを作成することは適切ではありませんが、より良い設計アプローチを目指す方がよいでしょう。Group
Company
User(String name, String password, int type)
Group(String name, String name)
Company(String name, int employees, boolean isValid)
ReadDataFromFile
私の質問は、この場合の適切な設計がジェネリッククラスなのか、それとも抽象クラスであり、そのサブクラスに異なる1つのメソッドを実装するのかというcreateObject()
ことです。ただし、txtファイルからの必要なデータが異なる長さの文字列配列に入れられると仮定します。各タイプ。Genericクラスのアプローチに従いたいのですがclass ReadDataFromFile<T>{}
、それぞれが異なるコンストラクターの呼び出しを必要とするため、異なる型をどのように処理する必要があるかがわかりません。タイプを確認する必要がありinstanceof
ますか?各オブジェクトのクラスをメソッドに渡す必要がありますか?それとももっと良い方法はありますか?