В чем разница между древовидной структурой данных и составным шаблоном проектирования?

Я разрабатываю функцию управления категориями продуктов для своего проекта. По сути, товарная категория имеет следующие свойства:

  • Я БЫ
  • Имя
  • Родительская категория
  • Дочерние категории

Теперь я хочу отобразить все категории продуктов в виде дерева в пользовательском интерфейсе. Это выглядит как:

  • Электрические устройства
    • Компьютер
      • Рабочий стол
      • Ноутбук
      • Сервер
    • Смартфон ...
  • Одежда
    • Мужчины
      • Жан
      • Рубашка
    • Женщины
      • Платье
  • ...

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

public class ProductCategory
{
    public int Id {get;set;}
    public string Name {get;set;}
    public ProductCategory Parent {get;set;}
    public List<ProductCategory> Children {get;set;}
}

Я не знаю, может ли составной шаблон проектирования применяться в этом случае или нет?

В чем разница между древовидной структурой данных и составным шаблоном проектирования?

Спасибо

Туан

Повышение качества Laravel с помощью принципов SOLID: Лучшие практики и примеры
Повышение качества Laravel с помощью принципов SOLID: Лучшие практики и примеры
Когда мы говорим о том, как сделать следующий шаг в качестве разработчика, мы должны понимать, что качество кода всегда является основным фокусом на...
Принципы SOLID - лучшие практики
Принципы SOLID - лучшие практики
SOLID - это аббревиатура, обозначающая пять ключевых принципов проектирования: принцип единой ответственности, принцип "открыто-закрыто", принцип...
2
0
226
1

Ответы 1

В составном шаблоне цель состоит в том, чтобы инкапсулировать мощность используемых объектов. Или, как говорит Статья в Википедии:

The composite pattern describes a group of objects that is treated the same way as a single instance of the same type of object.

Ваш случай не кажется связанным, за исключением того, что название "Composite" в английском языке может означать что-то похожее на древовидную структуру данных.

Большое спасибо за ваш ответ. Но я действительно не понимаю, в чем разница между древовидной структурой данных и составным шаблоном проектирования. Не могли бы вы пояснить яснее?

TuanNA 11.07.2018 05:16

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