我有一个类(让我们称之为MyService
)在它的构造函数中接受两个依赖项。第一个与问题无关。第二个是PaymentDetails
。 PaymentDetails的寿命比MyService长,后者由工厂创建,用于处理此特定请求。
在MyService.process()
中,它:
new TransactionDetails()
对象并在其上设置各种内容,myPaymentDetails.setTransactionDetails( td );
PaymentDetails
必然会有很多方法。它是一个实体样式对象,当用户逐步浏览大约5页时,信息就会建立在该对象中。
困扰我的是,写作我的服务类取决于整个PaymentDetails
,但只调用一个方法。
这让我感到困扰,因为:
我的问题是:
解决此问题的最佳方法是什么,以便我的服务类具有最小的依赖性?
答案 0 :(得分:13)
您可以创建一个简单的界面:
public interface TransactionAcceptor {
void setTransactionDetails(TransactionDetails td);
}
让PaymentDetails
声明它实现了接口:
public class PaymentDetails implements TransactionAcceptor {
...
}
当然它已经实现了所需的方法。然后MyService
只需要处理TransactionAcceptor
界面,而不是PaymentDetails
。
答案 1 :(得分:4)
添加interface Transactionable
或其他内容,让PaymentDetails实现它。
在MyService中只处理'Transactionables'。