いくつかのクラスがあり、それぞれが特定のタスクを実行するゲームを作成しています。
私は OOP にまったく慣れていないので、静的クラス、メソッド、およびプロパティを繰り返さずにクラス インスタンスが相互に通信できるようにするにはどうすればよいか考えていましたが、これはひどいことのように思えます。
私は独学のプログラマーであり、多くの悪い習慣を行っていることを認識しています。これまでのところ、両方のクラスを静的にしてこの作業を行うことができましたが、コードをできるだけ良くするために何をすべきかを知りたいと思っていました。
また、このトピック (インスタンス間の通信) についてもっと読むことができるように、いくつかのリソース/書籍/記事をお勧めしていただければ幸いです。
私が話していることを理解できるように、ここにいくつかのコードを示します。
class Program
{
static void Main(string[] args)
{
Class1 instance1 = new Class1();
Class2 instance2 = new Class2();
// infinite loop
while (true)
{
instance1.UpdateMethod(someValue);
instance2.UpdateMethod();
}
}
}
class Class1
{
int Property;
UpdateMethod(int argument)
{
Property += argument;
if(Property == 3000)
{
// I should change the state of instance2
}
}
}
class Class2
{
UpdateMethod()
{
if(Time.GetTime() == SomeTime)
{
// here I want to change the state of instance1
}
}
}