我有一个如下所列的银行账户域。可以有 SavingsAccount、LoanAccount、FixedAccount 等。一个用户可以有多个帐户。我需要添加一个新功能——获取用户的所有帐户。函数应该写在哪里以及如何写?
如果解决方案遵循 SOLID 原则(开闭原则,...)和 DDD,那就太好了。
欢迎任何可以使代码更好的重构。
注意:AccountManipulator 将由网站客户端通过 Web 服务使用。
namespace BankAccountBL
{
public class AccountManipulator
{
//Whether it should beprivate or public?
private IAccount acc;
public AccountManipulator(int accountNumber)
{
acc = AccountFactory.GetAccount(accountNumber);
}
public void FreezeAccount()
{
acc.Freeze();
}
}
public interface IAccount
{
void Freeze();
}
public class AccountFactory
{
public static IAccount GetAccount(int accountNumber)
{
return new SavingsAccount(accountNumber);
}
}
public class SavingsAccount : IAccount
{
public SavingsAccount(int accountNumber)
{
}
public void Freeze()
{
}
}
}
阅读: