ドメイン駆動型設計に従うときにサービスクラスを実際に実装する最良の方法は何ですか?ドメイン駆動型設計でサービスをどのように実装する必要がありますか?
たとえば、1つのアカウントから別のアカウントに資金を振り替えるために使用できるAccountService
が必要ですか?次のうち、これを実装する最良の方法はどれですか?
public class AccountService1
{
private IAccountRepository _accountRepo;
public AccountService1(IAccountRepository accountRepo)
{
_accountRepo = accountRepo;
}
public void TransferFunds(double ammount, int sourceAccountNumber, int targetAccountNumber)
{
//FUNDS TRANSFER CODE
}
}
public class AccountService2
{
public void TransferFunds(double ammount, Account sourceAccount, Account targetAccount)
{
//FUNDS TRANSFER CODE
}
}
public static class AccountService3
{
public static void TransferFunds(double amount, Account sourceAccount, Account targetAccount)
{
//FUNDS TRANSFER CODE
}
}
public static class AccountService4
{
public static void TransferFunds(double amount, int sourceAccountNumber, int targetAccountNumber, IAccountRepository repository)
{
//FUNDS TRANSFER CODE
}
}