Книга DDD, Eric Evans: То, что предназначено “ФАБРИКОЙ, должно быть абстрагировано к желаемому типу, а не созданный реальный класс (классы)”.?

В книжном Домене Управляемый Дизайн, Eric Evans, в Главе 6 в разделе по "Фабрикам" (страница 139) это говорит следующее:

"Эти два основных требования для любой хорошей ФАБРИКИ:

...

"2. ФАБРИКА должна быть абстрагирована к желаемому типу, а не созданный реальный класс (классы)".

Могли Вы уточнять то, что предназначено тем оператором об основном требовании номер 2.

7
задан Cœur 6 August 2017 в 11:27
поделиться

2 ответа

Ответ Карлоса Лота верен, но вы всегда должны помнить о том, чтобы использовать Абстрактный завод , так как это позволит вам соединить бетонные заводы с бетонными типами без привязки потребителей к бетонным заводам или типам.

public interface ISomethingFactory
{
    ISomething Create();
}

public class SomethingFactory : ISomethingFactory
{
    public ISomething Create()
    {
        return new Something();
    }
}
8
ответ дан 6 December 2019 в 10:00
поделиться

Я думаю, это означает, что вы никогда не должны возвращать бетонный тип со своей фабрики.

Например, если у вас есть интерфейс, скажем ISomething, абстрактный класс SomethingBase и, наконец, некоторые классы, которые реализуют этот интерфейс и наследуют от базового класса. Метод создания должен возвращать тип интерфейса, а не базовый. Я думаю, что это и есть идея.

public ISomething Create() { ... }

Вместо

public SomethingBase Create() { ... }

Надеюсь, это поможет, Карлос.

11
ответ дан 6 December 2019 в 10:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: