Как написать функциональность с использованием DDD / CQRS

У меня есть домен банковского счета, как указано ниже. Может быть SavingsAccount, LoanAccount, FixedAccount и так далее. Один пользователь может иметь несколько учетных записей. Мне нужно добавить новый функционал & # x2013; получить все учетные записи для пользователя. Где должна быть написана функция и как?

Было бы здорово, если бы решение следовало принципам SOLID (принцип Open-Closed, & # x2026;) и DDD.

Любой рефакторинг, который сделает код лучше, приветствуется.

Примечание. AccountManipulator будет использоваться клиентом веб-сайта через веб-службу.

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()
    {

    }
}
}

ЧТЕНИЕ:

When to use the CQRS design pattern?

In domain-driven design, would it be a violation of DDD to put calls to other objects' repostiories in a domain object?

Refactoring domain logic that accesses repositories in a legacy system

Which of these examples represent correct use of DDD?

Good Domain Driven Design samples

Advantage of creating a generic repository vs. specific repository for each object?

Ответы на вопрос(4)

Ваш ответ на вопрос