Добрый день.
Я пытаюсь выяснить, какой шаблон я могу использовать для какой-то новой разработки, но я увязаю. Сначала я подумал о фабричном образце, но потом, возможно, о строителе, но ни один из них, похоже, не подходит идеально.
Моя проблема в том, что базовый класс Product в шаблонах не является универсальным. Кажется, что для всех шаблонов Factory и Builder базовые продукты должны быть абсолютно одинаковыми.
Например, (очень глупый пример):
public class ProductBase
{
public int x;
public int y;
}
public class ProductA : ProductBase
{
public int z;
}
public class ProductB : ProductBase
{
public int a;
}
Я подумал, что мог бы использовать фабричный метод для создания продукта и вернуть его вызывающей стороне, а затем просто заставить вызывающего установить уникальные данные о продукте, как только я его получу, но это требует приведения класса продукта к определенному типу. для того, чтобы установить тип конкретных данных. Тем не менее, все это пахнет для меня подозрительно, потому что, если я уже знаю, какой тип мне нужен, действительно ли я просто усложняю вещи с помощью шаблона?
В любом случае, любые указания относительно того, какой подход здесь может быть принят, приветствуются. В конечном счете, я ищу некоторую модификацию этих шаблонов (или совсем другую) для учета неуниверсальных продуктов. Или, может быть, настройка специфических для типа данных для продукта после создания по шаблону не так уж и плоха?
ОБНОВЛЕНИЕ: я должен был упомянуть, что мне нужно установить специфичные для типа данные (z или a) во время выполнения, так как они передаются через веб-форму. Таким образом, я не могу оставить это на усмотрение Фабрики или Строителя для создания полного экземпляра, мне все еще нужен какой-то способ установки данных после факта (или во время создания экземпляра, но, похоже, это не имеет хорошего общего решения).