Шаблон стратегии или шаблон строителя?

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

Теперь я должен создать различные виды карты (вид продавца, вид клиента) (каждая карта имеет: дома, здания, улицы) в зависимости от типа, который пользователь выбирает в пользовательском интерфейсе. Я хочу сделать это максимально расширяемым, так как, возможно, некоторые другие представления будут добавлены в программу. В этом случае я должен создать стратегию, которая инкапсулирует алгоритм для создания различных представлений? или следует применить шаблон строителя? или я должен создать стратегию со строителем внутри?.

public class Map
{
  private List<House> Houses { get; set; }
  private List<Building> Buildings { get; set; }
  private List<Street> Streets { get; set; }
}

В пользовательском интерфейсе:

  • Выберите с помощью: просмотр продавца, просмотр клиента.
  • Карта: показывает карту со всеми его вещами и в зависимости от выбора, зависит вид, который отображается.

Вид продавца: дома и здания зеленого цвета продаются, а красного цвета продаются.

Вид клиента: дом в синем выбран, чтобы купить, и только появляются дома в продаже.

Спасибо и желаю, чтобы вы поняли мою проблему!

1 ответ

Насколько я понял, у вас другое поведение в зависимости от роли пользователя. Поэтому целесообразно иметь разные стратегии представления данных. Использование шаблона построения внутри стратегий также целесообразно, когда вам нужно создать сложный объект.

Другие вопросы по тегам