我有一个特定的要求,如:
serviceUtility.invokeService(requestObj)
上述方法采用requestObj
,它并不总是相同的对象。它可以包含任何对象取决于功能。但是,invokeService
是一般方法必须根据对象处理请求。我想自动化,以便动态识别对象并采取相同的行动。这意味着serviceUtility
类中的实现适用于任何类型的对象。因为每个人的逻辑都是一样的。现在我正在检查对象类型并执行逻辑。
答案 0 :(得分:1)
根据您的编程语言,您可以使用反射动态地执行此操作(例如,在Java / C#中);但要使它完美运作将会变得混乱和困难。
如果可能,您应该重新组织代码并创建一个公共接口,所有类都会实现。那么你知道肯定他们有正确的方法,可以调用它们而不必发现它们的确切类型
答案 1 :(得分:1)
因为每个逻辑都相同
在这种情况下,您需要使用Generic programming。例如,在Java中:
public <T extends Request> void invokeService(T object) {
object.run();
}
稍后,在客户端:
utility.invokeService(new FooRequest());
utility.invokeService(new BarRequest());
答案 2 :(得分:0)
您正在寻找名为“工厂方法”的创意设计模式。