gpt4 book ai didi

java - 当一个类只调用另一个类有很多方法的一个方法时,如何降低耦合?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:45:06 25 4
gpt4 key购买 nike

我有一个类(我们称它为 MyService),它在其构造函数中接受两个依赖项。第一个与问题无关。第二个是 PaymentDetails。 PaymentDetails 比 MyService 存在的时间更长,后者由工厂创建以处理此特定请求。

MyService.process() 中,它:

  • 用第一个依赖做一些事情,
  • 构造一个 new TransactionDetails() 对象并在其上设置各种内容,
  • 调用 myPaymentDetails.setTransactionDetails( td );
  • 返回说明向导中的下一个页面的内容

PaymentDetails 必然包含许多方法。它是一个实体样式对象,当用户逐步浏览一系列大约 5 个页面时,信息将构建到该对象中。

令我困扰的是,正如所写,我的服务类依赖于整个 PaymentDetails 但只调用一个方法。

这让我很困扰,因为:

  • 它将限制重用服务类的能力
  • 不可能通过阅读方法签名来理解真正的依赖关系

我的问题是:

解决此问题的最佳方法是什么,以便我的服务类具有最小的依赖性?

最佳答案

您可以创建一个简单的界面:

public interface TransactionAcceptor {
void setTransactionDetails(TransactionDetails td);
}

PaymentDetails 声明它实现接口(interface):

public class PaymentDetails implements TransactionAcceptor {
...
}

当然它已经实现了所需的方法。那么MyService只需要和TransactionAcceptor接口(interface)打交道,不需要和PaymentDetails耦合。

关于java - 当一个类只调用另一个类有很多方法的一个方法时,如何降低耦合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5521485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com