我正在研究样本银行应用程序。为了使银行业务(存款,提款,转账等)线程安全,我想使用Lock接口。我需要锁定该帐户上发生的银行操作的Account实例。 例如,在deposit(Account account,Double amountToDeposit)中,我想锁定该帐户实例,以便可以在不同的帐户上同时进行多个存款操作。
我可以在Account pojo中拥有一个Lock实例吗,根据设计指南,这是一种好的编码习惯吗? 实现此功能的最佳方法是什么?
public class Account{
private final Long accountNumber;
private Double balance;
private final Lock lock;
// constructor, getters and setter
}
以下是银行交易的示例代码-
public class Transaction{
public void deposit(Account accunt, Double amount){
account.getLock().lock();
//validation and transaction logic
account.getLock().unLock();
}
}