私は自分が持っていたアイデアの概念についてまだいくつかの問題を抱えています。
問題は、動的に変更される可能性のあるシステム構成とは別に、そのプロパティとメソッドを変更できるクラス A を作成することでした。
簡単に言えば、プロパティ X、Y を持つクラス「A1」と、add メソッドのみを持つクラスと、X、Y、Z およびメソッド add と減算を持つ別のクラス「A2」を持つことができます。そしておそらくそれらはシステム内にあるでしょう。
しかし、アイデアは、クラス「A」またはより良いクラスAのオブジェクトが、それらのメソッドをrecebebdoする2つのうちの1つに動的に変更できるということです。
動的に変更できるのでストラテジー パターンを使用することも考えましたが、動的に追加できない関数を貼り付け、Abstract Factory と Factory パターンについて少し読んだところ、「ほぼ」私のニーズを満たしています。しかし、それは私の例があまり明確ではないからだと思います。
私が想像したのは、クラスが独自の抽象ファクトリになるということですが、それでも疑問と新しいメソッドが残っています。
特定の言語用ではありませんが、コード内で複数のクラスを管理および操作する必要がないシステムの使いやすさと私の心は、実際のクラスへのインターフェイスになるでしょう。
大きな問題は次のとおりです。それは可能ですか? どのようにできるのか?
例:
class System
{
setConfig(Config.VALUE);
}
class A
{
if(system.config == Config.A1)
{
this.handleClass = new A1();
}
else
{
this.handleClass = new A2();
}
}
class A1
{
add(value:float);
}
class A1
{
subtract(value:float);
}
main
{
System system.setConfig(Config.A);
A foo = new A();
A.add() // because the add method belongs to class A1;
System system.setConfig(Config.B);
A.subtract() // because the add method belongs to class A2;
}