Найти тему
Programmer

Основы программирования. Обобщения или женерики являются еще одним неполноценным чертежом объекта!

Давайте в данной статье кратко обсудим смысл всех обобщений или женериков, которые по своей сути являются неполными чертежами типа объекта, то есть они очень близки по смыслу с интерфейсами и абстрактными классами.

Нужно понять, чем обобщения отличаются от интерфейсов и абстрактных классов, а отличаются они видом неполноценности чертежа объекта. Таким образом, интерфейсы и абстрактные классы неполноценны в области пустотелых методов, которые в них полностью не определены или представляют собой каркасы функций. Что касается обобщений, то женерики неполноценны именно в неопределенности типов применяющихся внутри них комплектующих объектов. Это значит, что один параметр (тип входного объекта) неопределенности у обобщенного типа может в чертеже объекта после компиляции определять сколько угодно внутренних комплектующих объектов именно типа данного параметра после его определения или "закрытия женерика". А вот пустые методы в интерфейсах и абстрактных классах имеют неопределенность только в одном месте данного метода!

На картинке показаны основные отличия обобщенных типов или женериков от интерфейсов и абстрактных классов:

Картинка к статье о смысле обобщений и их сходстве в этом с интерфейсами и абстрактными классами.

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

В языке C++ в треугольных скобках при создании объекта женерика вы вообще можете использовать обычные параметры по аналогии с обычными конструкторами объектов , то есть числа, строки и другие параметры, которые конструируют объект женерика прямо на ходу на уровне чертежа. Обычно эти параметры вы указываете в обычных конструкторах в круглых скобках при создании объекта.

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

Подписывайтесь, ставьте лайки, комментируйте...