【发布时间】:2011-04-15 00:36:06
【问题描述】:
我正在尝试实现 foo_unknown 类的通用行为,它调用 foo_func1()、foo_func2() 方法;它取决于调用 foo_func1() 和 foo_func2() 方法实现的 foo 类的构造函数中定义的对象的类型。 也欢迎任何新的革命性设计模式。这可以解决所有问题。
【问题讨论】:
-
你真的需要澄清你想要做什么。您的代码遇到的确切问题是什么?你了解接口在 Java 中的作用吗?这似乎也可能是问题所在。
-
有什么理由不想在基类中定义抽象的 foo_func1 和 foo_func2?
-
感谢布赖恩的回复。我知道接口。我正在实施遗传算法。类 foo1 和 foo2 是说不同的问题域。 foo_controller 是调用 foo1(crossover,fitness) 和 foo2 类中不同函数的遗传算法类。因此,您建议定义一个接口 foo 并将该 foo 分配为 foo_controller 中的字段,而 foo1 和 foo2 实现该接口。好建议我会尝试。
-
从您在此处描述的内容看来,您希望实现 Strategy Pattern。
-
顺便说一下,通常的约定是对类使用大写的名称,只对方法和(非静态最终)变量使用小写。 (如果您想回复特定的人,请在回复评论中包含“@name”,例如“@pulkittomar”。然后他们会自动收到通知。)
标签: java generics vector arraylist