我遇到过几次被称为辅助对象的人...谁能详细说明这些辅助对象是什么,为什么我们需要它们?

最佳答案

几个类共有的一些操作可以移到辅助类,然后通过对象组合使用:

public class OrderService {
    private PriceHelper priceHelper = new PriceHelper();

    public double calculateOrderPrice(order) {
        double price = 0;
        for (Item item : order.getItems()) {
            double += priceHelper.calculatePrice(item.getProduct());
        }
    }
}

public class ProductService {
    private PriceHelper priceHelper = new PriceHelper();

    public double getProductPrice(Product product) {
        return priceHelper.calculatePrice(product);
    }
}

可以通过多种方式使用帮助程序类:
  • 直接实例化它们(如上所述)
  • 通过依赖项注入(inject)
  • 通过将它们的方法设置为static并以静态方式访问它们,例如IOUtils.closeQuietly(inputStream)关闭InputStream并抛出异常。
  • 至少我的约定是仅使用静态方法而不是依赖项XUtils来命名类,而又具有依赖项的类/需要由DI容器管理XHelper

  • (上面的示例只是一个示例-不应从域驱动设计的角度对其进行讨论)

    关于java - 什么是Java中的辅助对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2135775/

    10-08 22:32