【发布时间】:2013-10-29 00:43:29
【问题描述】:
我对自己的想法的构想仍有一些问题。
问题在于,我们想创建一个 A 类,它可以根据系统配置改变其属性和方法,并且可以动态改变。
简单地说,我可以有一个具有属性 X、Y 且仅具有 add 方法的类“A1”和另一个具有 X、Y、Z 和方法加减法的类“A2”。并且可能会将它们包含在系统中。
但想法是“A”类或更好的类 A 的对象可以动态更改为两个接收方法之一。
我考虑过使用策略模式,因为我可以动态更改,但是我卡住了不能动态添加的功能,并且我阅读了一些关于抽象工厂和工厂模式的信息,它“几乎”满足了我的需求。但我认为是因为我的例子不是很清楚。
我开始想象这个类将是他们自己的抽象工厂,但这仍然给我留下了疑问和他们的新方法。
它不是针对特定的语言,而是我的思想和系统的易用性,无需在代码中管理和处理多个类,它将是实际类的接口。
最大的问题是:有可能吗?我该怎么办?
示例:
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;
}
【问题讨论】:
-
是的,在 C# 中您可以使用动态和通用接口。在java中虽然我只知道你可以使用通用接口。
-
...使用哪种编程语言?
-
它与特定语言并不完全相关,而是一种“结构化解决方案”,便于从同一个类开始访问数据。
标签: design-patterns dynamic methods interface return-type