一尘不染

什么是Java中的辅助对象?

java

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


阅读 415

收藏
2020-12-03

共1个答案

一尘不染

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

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);
    }
}

可以通过多种方式使用帮助程序类:

  • 直接实例化它们(如上所述)
  • 通过依赖注入
  • 通过制作它们的方法static并以静态方式访问它们,例如IOUtils.closeQuietly(inputStream)关闭所有InputStream抛出异常的方法。
  • 至少我的约定是只使用静态方法而不是依赖项来命名类XUtils,而具有依赖项的类/需要由DI容器进行管理XHelper

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

2020-12-03