私はすべてのクラスとクリエイターのデザインを決定しようとしています。Javaでクリエイタークラスとクラス自体の設計を実装する正しい方法は何ですか?
たとえば、私は2クラス、レベルとLevelLoaderあります
を私はこれまで来ているデザインです。
これはレベルクラスである:
public class Level implements Serializable {
private byte[] map;
Level(LevelLoader loader){
map = loader.getMap();
}
// ...
}
これは創作者です:
だから私は何であるか興味津々File file = new File("src/Level/level2.txt");
Level level1 = new Level(new TextLoader(file));
:
TextLoaderは、上記LevelLoaderインタフェースを実装している:私は書くつもりメインファイル内のレベルのインスタンスを作成するために、例えばので
public interface LevelLoader { public Level loadLevel(InputStream stream); public byte[] getMap(); }
それらを他のものに接続する最も論理的な方法は?
フィードバックに感謝します。私もそのように行くことを考えていましたが、どうしてなぜあなたはc'torの代わりにメソッドを使うのが好きですか? –
これらのインターフェイスを他のクラスに実装すると、左側の変数がすべてインターフェイスのものであることがわかります。例えば、LevelLoader levelLoader = new SimpleLevelLoader(); ' –
ファイルからいくつかの情報を収集する場合は、コンストラクタを必要としますが、ここでは両方を使用できます。他のオプションはコンストラクタからこのメソッドを呼び出すことができます。 –