Java - 将方法作为参数发送,并确定是否需要调用它

时间:2017-06-01 14:28:29

标签: java design-patterns

我正在制作应用程序,我正在实现缓存。问题是DAO是在另一个服务中实现的。 为避免代码重复,我的想法是在我的服务中使用通用缓存。然后,根据所调用的方法,它验证相应的缓存,并且如果它不存在,则调用与作为参数传递的方法相关联的DAO。有没有办法做到这一点? 注意:我在我的应用程序中使用java 1.6

1 个答案:

答案 0 :(得分:0)

我想你需要一个适配器模式。天真的实现可能是

class AdapterA implements Adapter<A> {
   private A;
   @Override
   public void getValue() { return getA();}
} 

然后当你得到A,B或C的实例时,你将它包装在适当的适配器中。之后你可以调用getValue而不管底层的特定类型。

另一种方法。如果有人说出模式是什么(可能是代理?),我将不胜感激:

class ProxyImpl implements Proxy {
 @Override
 public void doAction(<? extends DAO> dao) {
   if (dao instance of A) { ((A)dao).getA()
   } else if (dao instance of B) { ((B)dao).getB()