Имеет ли смысл использовать слово «набор» в классе в качестве общего термина как для наборов, так и для отдельных элементов?

Имеет ли смысл использовать слово «набор» в классе в качестве общего термина как для наборов, так и для отдельных элементов?
Имеет ли смысл использовать слово «набор» в классе в качестве общего термина как для наборов, так и для отдельных элементов? - flashcomindonesia @ Unsplash

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

Это семантический, а не технический аргумент

Математики с радостью согласятся, что множество может содержать одно число. Очевидно, что массивы и списки также могут содержать 1 элемент. Здесь нет никаких технических ограничений.

Однако я подозреваю, что вы используете неправильное имя для концепции, которую пытаетесь описать. Если эти данные относятся как к отдельным книгам, так и к наборам книг, вам следует найти уникальное имя для описания и инкапсуляции их общей структуры.

Например, LibraryItem. Тогда Book и BookSet могут наследоваться (или реализовываться) от LibraryItem, что позволит вам повторно использовать общие черты, но без путаницы в отношении того, что отдельная книга должна быть частью набора сама по себе.

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


LetsCodeIt, 4 января 2023 г., 01:26

Похожие посты