Шаблон стратегии или шаблон строителя?
Я знаю, что паттерн стратегии - это паттерн поведения, который инкапсулирует алгоритм в классе. Кроме того, что модель строителя предназначена для разделения конструкции сложного объекта.
Теперь я должен создать различные виды карты (вид продавца, вид клиента) (каждая карта имеет: дома, здания, улицы) в зависимости от типа, который пользователь выбирает в пользовательском интерфейсе. Я хочу сделать это максимально расширяемым, так как, возможно, некоторые другие представления будут добавлены в программу. В этом случае я должен создать стратегию, которая инкапсулирует алгоритм для создания различных представлений? или следует применить шаблон строителя? или я должен создать стратегию со строителем внутри?.
public class Map
{
private List<House> Houses { get; set; }
private List<Building> Buildings { get; set; }
private List<Street> Streets { get; set; }
}
В пользовательском интерфейсе:
- Выберите с помощью: просмотр продавца, просмотр клиента.
- Карта: показывает карту со всеми его вещами и в зависимости от выбора, зависит вид, который отображается.
Вид продавца: дома и здания зеленого цвета продаются, а красного цвета продаются.
Вид клиента: дом в синем выбран, чтобы купить, и только появляются дома в продаже.
Спасибо и желаю, чтобы вы поняли мою проблему!
1 ответ
Насколько я понял, у вас другое поведение в зависимости от роли пользователя. Поэтому целесообразно иметь разные стратегии представления данных. Использование шаблона построения внутри стратегий также целесообразно, когда вам нужно создать сложный объект.