С++ Паттерн проектированя «Фабричный метод». Пример кода.

Фабричный метод в C++ — это такой подход к написанию кода, когда наследники какого-то класса в момент создания знают какой класс создавать. Как-то так понятно, что ничего не понятно, да?

Предположим, вы имеете какой-то набор сущностей, объединённых в одну группу. Например, роли сущностей играют спортивные клубы, а объединяющей их составляющей является спорт. Так как спорт это общее понятие, которым можно объединить спортивные клубы, то можно создать класс Sport и унаследовать от него какие-то спортивные клубы, например футбольный и баскетбольный.

Под фабричным методом можно понимать, что будет использоваться такой процесс написания кода, где для создания любого спортивного клуба будет описан класс, который возьмёт на себя обязательства по созданию спортивного клуба, причём сам этот класс своими "руками" создавать спортивные клубы не станет, он свалит такую не царскую обязанность на своих подчинённых (на своих потомков). Как это всё выглядит? Пока весь код описывается в общих чертах. Это своеобразный чертёж программы.

Дальше подходим к элементам описания внутренностей нашего создающего класса или точнее внутренностей "царя" и всех его потомков.

Всё, фабричный метод применён. Вопрос только в том, как его использовать. Для начала напоминаю:

  • Если объект производного класса вызывается с помощью указателя или ссылки на него, С++ определяет какую функцию вызвать, основываясь на типе объекта

Это готовая программа. Она ничего не выведет на экран, потому что наши спортивные клубы не имеют реализаций. Но если описать какие-то методы, то с помощью обхода массива несложно будет использовать методы, принадлежащие какому-то определённому спортивному клубу. Пример на футбольных клубах (баскетбольные не дописаны).

Один комментарий на «“С++ Паттерн проектированя «Фабричный метод». Пример кода.”»

  1. Romanchill:

    Ничего не понятно на 3 курсе программирования, но очень интересно 🙄 🙄 🙄

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Поиск

 
     

Случайная книга в электронном формате

https://www.litres.ru/vitaliy-potopahin/turbo-pascal-reshenie-slozhnyh-zadach-2/?lfrom=15589587
Яндекс.Метрика