私はJavaでゲームを作っていますが、私は設計上の問題を抱えています。 私のリソース(イメージ、アニメーション、サウンド)は、リソースの種類ごとに1つずつ、いくつかのHashMapに格納されます。これらの(静的な)ハッシュマップは、 "Res"という静的クラスにあります。エンティティがリソースを必要とする場合、グローバルクラスのハッシュマップの1つにアクセスし、リソースが存在しない場合は自動的にロードされます。リソース管理の設計
static Map<String, Sprite> sprites = new HashMap<>();
static Map<String, BufferedImage> images = new HashMap<>();
static Map<String, Clip> sounds = new HashMap<>();
static Map<String, Font> fonts = new HashMap<>();
私の質問です:このデザインは十分ですか?私は静的関数は悪い習慣だと読んだことがありますが、毎回クラス "Res"のインスタンスを渡さなければなりませんか?それとも他の選択肢がありますか?また、このリソース管理システムは良い方法ですか? ありがとうございます!
シングルトンデザインパターン(静的インスタンスを使用)を使用できます。人々はそのシングルトンを誇張して好きです。ほとんどの場合 - はい、ただし特定の状況では、1つのキャッシュインスタンスを使用してください。 –
静的メソッド/メンバーよりもシングルトンの利点は何ですか? – user10F64D4
シングルトンは従来のクラスアプローチを保持しており、どこでもstaticキーワードを使用する必要はありません。最初は実装する必要がありますが、プログラムのアーキテクチャを大幅に簡略化します。 – Rudy