Чтение онлайн

на главную

Жанры

Введение в объектно-ориентированный дизайн с Java
Шрифт:

Однако иногда совместное использование невозможно.

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

В целом, разложение помогает разбить задачу на более мелкие части.

И сложная вещь может быть составлена из отдельных более простых частей.

И важным является понимания – это то, как части относятся к целому, фиксированное или динамическое их число, их время жизни и совместное использование.

Идея

объектно-ориентированного моделирования и программирования заключается в создании компьютерного представления концепций в пространстве задачи.

И принцип проектирования, называемый обобщением, помогает сократить избыточность при решении задачи.

Многие виды поведения в реальном мире действуют посредством повторяющихся действий.

И мы можем моделировать поведение с помощью методов.

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

Например, возьмите код создания и инициализации массива.

Мы можем обобщить этот повторяющийся код, сделав отдельный метод. Это помогает нам уменьшить количество почти идентичного кода в нашей системе.

Методы – это способ применения одного и того же поведения к другому набору данных.

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

Мы можем обобщать действия в метод и просто передавать другой набор данных через аргументы.

Так где же мы можем применить обобщение?

Если мы можем повторно использовать код внутри метода и метод внутри класса, то можем ли мы повторно использовать код класса?

Можем ли мы обобщить классы?

Обобщение является одним из основных принципов объектно-ориентированного моделирования и программирования.

Но здесь обобщение достигается иначе, чем обобщение с помощью методов.

Обобщение в ООП может быть выполнено классами через наследование.

В обобщении мы принимаем повторяющиеся, общие характеристики двух или более классов и переносим их в другой класс.

В частности, вы можете иметь два класса, родительский класс и дочерний класс.

Когда дочерний класс наследуется от родительского класса, дочерний класс будет иметь атрибуты и поведение родительского класса.

Вы размещаете общие атрибуты и поведение в своем родительском классе.

Может быть несколько дочерних классов, которые наследуются от родительского класса, и все они получат эти общие атрибуты и поведение.

У дочерних классов также могут быть дополнительные атрибуты и поведение, которые позволяют им быть более специализированными в том, что они могут делать.

В стандартной терминологии родительский класс известен как суперкласс, а дочерний класс называется подклассом.

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

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

Через наследование все подклассы класса будут обладать атрибутами и поведением суперкласса.

Наследование и методы иллюстрируют принцип обобщения в проектировании.

Мы можем писать программы, способные выполнять одни и те же задачи, но с меньшим количеством кода.

Это делает код более многоразовым, потому что разные классы или методы могут совместно использовать одни и те же блоки кода.

Системы упрощаются, потому что у нас нет повторяющегося кода.

Обобщение помогает создать программное обеспечение, которое будет легче расширять, проще применять изменения и упрощает его поддержку.

Обобщение и наследование являются одной из наиболее сложных тем в объектно-ориентированном программировании и моделировании.

Наследование – это мощный инструмент проектирования, который помогает создавать понятные, многоразовые и поддерживаемые программные системы.

Однако неправильное наследование может привести к плохому коду.

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

Итак, как мы можем понять, злоупотребляем ли мы наследованием?

Есть несколько моментов, о которых нужно знать, когда рассматривается наследование.

Во-первых, вам нужно спросить себя, пользуюсь ли я наследованием, чтобы просто использовать общие атрибуты или поведение, не добавляя ничего особенного в подклассы?

Если ответ «да», тогда вы неправильно используете наследование.

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

Скажем, вы проектируете ресторан пиццы. И вам нужно смоделировать все различные варианты пиццы, которые есть у ресторана в меню.

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

И класс пиццы может обобщен.

Это кажется разумным, но давайте посмотрим, почему это является неправильным использованием наследования.

Поделиться:
Популярные книги

Энфис 6

Кронос Александр
6. Эрра
Фантастика:
героическая фантастика
рпг
аниме
5.00
рейтинг книги
Энфис 6

Инкарнатор

Прокофьев Роман Юрьевич
1. Стеллар
Фантастика:
боевая фантастика
рпг
7.30
рейтинг книги
Инкарнатор

Вечный. Книга I

Рокотов Алексей
1. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга I

Стеллар. Заклинатель

Прокофьев Роман Юрьевич
3. Стеллар
Фантастика:
боевая фантастика
8.40
рейтинг книги
Стеллар. Заклинатель

Измена. Я отомщу тебе, предатель

Вин Аманда
1. Измены
Любовные романы:
современные любовные романы
5.75
рейтинг книги
Измена. Я отомщу тебе, предатель

Два лика Ирэн

Ром Полина
Любовные романы:
любовно-фантастические романы
6.08
рейтинг книги
Два лика Ирэн

Ведьма

Резник Юлия
Любовные романы:
современные любовные романы
эро литература
8.54
рейтинг книги
Ведьма

Рядовой. Назад в СССР. Книга 1

Гаусс Максим
1. Второй шанс
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Рядовой. Назад в СССР. Книга 1

Таблеточку, Ваше Темнейшество?

Алая Лира
Любовные романы:
любовно-фантастические романы
6.30
рейтинг книги
Таблеточку, Ваше Темнейшество?

Столичный доктор

Вязовский Алексей
1. Столичный доктор
Фантастика:
попаданцы
альтернативная история
8.00
рейтинг книги
Столичный доктор

Последний Паладин. Том 2

Саваровский Роман
2. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин. Том 2

Неудержимый. Книга X

Боярский Андрей
10. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга X

Идеальный мир для Лекаря 11

Сапфир Олег
11. Лекарь
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 11

Подчинись мне

Сова Анастасия
1. Абрамовы
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Подчинись мне