Является ли Directory to SubDirectory скорее композицией или наследованием?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Является ли Directory to SubDirectory скорее композицией или наследованием?

Сообщение Anonymous »

В объектно-ориентированном программировании между объектами существуют два основных отношения.
  • Наследование (является-отношением)
  • Композиция (имеет связь / также называется вложением)
Для наследования можно установить связь между различными типами файлов. Текстовые файлы и растровые файлы являются файлами. Из-за этого можно было кодировать

Код: Выделить всё

class File
{
public:
void GetFileSize() { /* Implementation */ }
};
class BMPFile :public File {};
class TextFile:public File {};
Говоря о наследовании, реализация GetFileSize в базовом классе () можно повторно использовать в производных классах BMPFile и TextFile.
Это базовая возможность повторного использования кода с использованием наследования.
Для композиции один может иметь связь между каталогом и файлами.

Код: Выделить всё

class Directory
{
std::list list_of_files;
}
А теперь основная часть моего вопроса.
a) Какова связь между каталогом и подкаталогом?
b) Поскольку каталог содержит подкаталог, он определенно является композицией. Правильно ли я понимаю?
c) Поскольку подкаталог обладает всеми свойствами каталога, он также является наследованием. Правильно ли я понимаю?
d) Я считаю, что подкаталог имеет отношения наследования с каталогом из-за следующей аналогии.
Допустим, я хочу иметь каталог< /code> класс со следующим поведением/свойствами

Код: Выделить всё

class Directory
{
public:
bool HasSubDirectory {/*Implementation code*/}
void CreateSubDirectory(){/*Implementation code*/}
void DeleteSubDirectory(){/*Implementation code*/}
std::list ListAllSubDirectories{/*Implementation code*/}
};
Создавая подкаталог, наследующий от Directory, я могу добиться хорошей возможности повторного использования кода. (Мне также известно о возможности повторного использования кода посредством делегирования в случае композиции. Но, может быть, для этого примера, я считаю, лучше наследование?)
e) В Gang of Четвертый — это связь между древовидной структурой. Является ли приведенный выше пример хорошим кандидатом на шаблон проектирования композиции?
Я могу получить пример наследования/композиции. Но мне нужен пример, который содержит и то, и другое. Поэтому я хотел знать, хороший ли это кандидат.

Подробнее здесь: https://stackoverflow.com/questions/791 ... nheritance
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Является ли Directory to SubDirectory скорее композицией или наследованием?
    Anonymous » » в форуме C++
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Является ли Directory to SubDirectory скорее композицией или наследованием?
    Anonymous » » в форуме C++
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • В чем разница между Directory.EnumerateFiles и Directory.GetFiles?
    Гость » » в форуме C#
    0 Ответы
    81 Просмотры
    Последнее сообщение Гость
  • FluenTftP Directory Directory Skip Подпалки
    Anonymous » » в форуме C#
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • .net9, кажется, игнорирует Directory.build.props (или Directory.build.Targets или D.Packages.props)
    Anonymous » » в форуме C#
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»