Helper类中的依赖关系?

时间:2015-07-21 17:20:32

标签: java oop

我正在转换一个到处使用单身的旧代码库。它有许多辅助类可以使用这些单例。

我试图将其转换为使用DI,但我不确定这个问题的最佳解决方案是什么。辅助类有许多方法,如:

public PropertyValue getProperty(String objId, String propId) {
    obj = dao.getObj(objId);
    if(obj == null)
        return null;
    if(some other condition)
        log result
    return obj.getProperty(propId)

这个例子有点做作,但它有点说明了我的观点。如果对象存在,它将获取值。我不想将此方法添加到DAO中,因为有许多DAO实现,因此需要在很多地方实现。类似于它自己的对象。

我想我可以使用java 8的界面默认设置,但这一切对我来说都是错误的。

有什么想法?

1 个答案:

答案 0 :(得分:2)

使用Spring,我会建议像:

@Component
public class Helper {

  @Autowired
  private IDao dao;

  public PropertyValue getProperty(String objId, String propId) {
    obj = dao.getObj(objId);
    if(obj == null)
      return null;
    if(some other condition)
      log result
    return obj.getProperty(propId)
  } // getProperty
} // class Helper

并再次使用自动连线将助手注入另一个类:

@Component
public class SomeClass {
  @Autowired
  private Helper helper;

  public void someMethod() {
    // ...
    PropertyValue v = helper.getProperty(objId, propertyId);
    // ...
  }
}