最初に私の要件は
「アカウントを作成してお金を入れることができます。アイテムを購入すると、アカウントが減少します」
だから私の AccountController は次のようになりました
class AccountController
{
private IAccountDataSource _accountDataSource;
Create(Account anAccount)
{
_accountDataSource.Insert(anAccount);
Render(anAccount.Id);
}
}
しかし、その後、「一部の人は無料アカウントを持つことができます(すべてのアイテムが無料になります)が、実際のアカウントを作成すると無料アカウントを削除します」という新しい要件があります。
だから私のcontroller.Createはなりました
Create(Account anAccount)
{
_accountDataSource.Insert(anAccount);
RemoveFreeAccount(anAccount.Customer);
Render(anAccount.Id);
}
RemoveFreeAccount(Customer aCustomer)
{
_accountDataSource.Remove(new AccountFilter() { Type='Free', CustomerId=aCustomer.Id });
}
しかし、私にとっては、これを別の場所に配置する必要があるように感じますが、データの保存を処理することを想定してRemoveFreeAccount
いるため、どこにあるのかわかりません。IAccountDataSource