Введение в объектно-ориентированный дизайн с Java - стр. 22
Например, холодильник и морозильник имеют одинаковый срок службы.
И одно не может существовать без другого.
Если вы откажетесь от холодильника, вы также избавитесь от морозильной камеры.
Но срок жизни также может быть не связан.
У холодильника и продуктов питания разные сроки службы. И каждый может существовать независимо.
Также вы можете иметь целые вещи, которые имеют общие части в одно и то же время.
Например, человек, у которого есть дочь в одной семье, а также супруга в другой семье.
Эти две семьи считаются отдельными целыми, но они одновременно имеют одну и ту же общую часть.
Однако иногда совместное использование невозможно.
Например, пищевой продукт в холодильнике не может одновременно находиться в духовке.
В целом, разложение помогает разбить задачу на более мелкие части.
И сложная вещь может быть составлена из отдельных более простых частей.
И важным является понимания – это то, как части относятся к целому, фиксированное или динамическое их число, их время жизни и совместное использование.
Идея объектно-ориентированного моделирования и программирования заключается в создании компьютерного представления концепций в пространстве задачи.
И принцип проектирования, называемый обобщением, помогает сократить избыточность при решении задачи.
Многие виды поведения в реальном мире действуют посредством повторяющихся действий.
И мы можем моделировать поведение с помощью методов.
Это позволяет нам обобщать поведение и устраняет необходимость иметь идентичный код, разбросанный во всей программе.
Например, возьмите код создания и инициализации массива.
Мы можем обобщить этот повторяющийся код, сделав отдельный метод. Это помогает нам уменьшить количество почти идентичного кода в нашей системе.
Методы – это способ применения одного и того же поведения к другому набору данных.
Обобщение часто используется при реализации алгоритмов, которые предназначены для выполнения одного и того же действия на разных наборах данных.
Мы можем обобщать действия в метод и просто передавать другой набор данных через аргументы.
Так где же мы можем применить обобщение?
Если мы можем повторно использовать код внутри метода и метод внутри класса, то можем ли мы повторно использовать код класса?
Можем ли мы обобщить классы?
Обобщение является одним из основных принципов объектно-ориентированного моделирования и программирования.
Но здесь обобщение достигается иначе, чем обобщение с помощью методов.
Обобщение в ООП может быть выполнено классами через наследование.
В обобщении мы принимаем повторяющиеся, общие характеристики двух или более классов и переносим их в другой класс.