私はこのようなものを持っています:
public class Map
{
class DataHandler
{
private int posX, posY;
// Other attributes
public int GetX() { return posX; }
public int GetY() { return posY; }
// Other functions for handling data (get/set)
}
class FileHandler
{
// Functions for reading/writing setting files
}
DataHandler Data;
FileHandler Files;
public Map()
{
Data = new DataHandler();
Files = new FileHandler();
}
}
ここで、設定ファイルを作成するときに、クラスのいくつかの変数 (非静的) を読み取る必要がありますDataHandler
。たとえば、ファイルに書き込むためにandメソッドを使用してposX
andの値を取得したいとします。「ファイル」インスタンスからマップの「データ」インスタンスにアクセスするにはどうすればよいですか? ファイルを書き込む関数にパラメーターとして、DataHandler クラスのインスタンスを渡すことができることはわかっていますが、思ったほどではありません。私の考えでは、同じクラス内にあるため、データ(この場合は)を単独で読み取る必要があります。これを行うためのきれいな方法はありますか?posY
GetX
GetY
posX
posY
Map
編集:
Map
クラスのインスタンスをFileHandler
コンストラクターに渡すことができたので、その親クラス、つまりデータにアクセスする方法がありますが、問題を解決する良い方法ではないことは理解しています。したがって、構造を変更しても問題はありません。何か問題があることは理解しています。そうしないと、この問題は発生しませんが、変更方法がわかりません。何か提案があれば、遠慮なく書き込んでください。
文脈をよりよく説明するためだけに。さまざまなデータ (x、y、高さ、幅、名前など)、それを説明するいくつかの画像 (たとえば、地形の高さの RGB 画像など) で構成されるマップがあります。クラス) といくつかの設定ファイル。これらのファイルの 1 つに、マップ データの一部が書き込まれている必要があります。そこで、データ、画像、ファイルを扱う3つのクラスを親に持つMapクラスを考えたのですが、この問題が発生したので、良い構造ではないと思います。