Добавил:
выбрасываю тут свой мусор, надеюсь, что он кому-то может пригодится... Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OOP-KONEChNYJ.docx
Скачиваний:
20
Добавлен:
03.12.2023
Размер:
7.72 Mб
Скачать

18. Понятие объекта и задач построения ис с точки зрения объектов. Назначение и структура crc-карточек.

Объект в ООП — это сущность, способная сохранять свое состояние (информацию) и обеспечивающая набор операций (поведение) для проверки и изменения этого состояния.

Каждый объект в ООП характеризуется своим состоянием. Состояние объекта характеризуется текущим значением его атрибутов (например, атрибут – баланс, состояние – количество денег на балансе).

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

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

Важной особенностью является то, что объекты могут включать в себя другие объекты (композиция)

CRC - карточки (Class – Responsibility - Collaboration – Класс – Взаимодействия - Сотрудничества) удобный способ для определения классов и их взаимодействия.

Главным предназначением CRC карточек является концентрирование разработчики на главных абстракциях задачи и предотвращение от зарывания в подробности и детали второго плана.

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

Слева карточки записывается ответственность класса – что класс должен делать? Выделенные ответственности будут в будущем методами класса.

Справа карточки отмечается связи класса – что другие классы делают при взаимодействии с ними? Связи определяет область сотрудничества этого класса.

1 9. Понятия инкапсуляции и абстракции, их назначение в ооп.

Инкапсуляция – это свойство системы, позволяющее объединить данные и методы, работающие с ними, в классе и скрыть детали реализации от пользователя. Инкапсуляция неразрывно связана с понятием интерфейса класса. По сути, всё то, что не входит в интерфейс, инкапсулируется в классе.

Позволяет пользователю не задумываться о сложности реализации используемого программного компонента (что у него внутри?). Так же ограничивает доступ к внутренним компонентам, что бы сторонние объекты не могли их изменить, в случае, когда это не требуется.

Абстракция — способ выделения самых значимых характеристик объекта, при этом менее значимые отбрасываются. В ООП абстракция — работа только со значимыми характеристиками. Суть этого принципа в том, чтобы отделить составные объекты, состоящие из «меньших» объектов, от этих самых объектов, то есть от их составляющих. Такой подход позволяет работать непосредственно с объектом, не вдаваясь в подробности, из чего же он состоит и как работает. Например, есть стена, состоящая из кирпичей. Работая со стеной, нам не важно, как были произведены кирпичи, мы работаем на более высоком уровне абстракции.

Инкапсуляция (encapsulation), иначе говоря, сокрытие информации, состоит в отделении внешних аспектов объекта, доступных другим объектам, от деталей внутренней реализации, которые от других объектов скрываются. Инкапсуляция исключает возникновение взаимозависимостей участков программы, из-за которых небольшие изменения приводят к значительным непредвиденным последствиям. Реализация объекта может быть изменена безо всяких последствий для использующих его приложений. Изменение реализации может быть предпринято для повышения производительности, устранения ошибки, консолидации кода или для подготовки к переносу программы на другие системы. Инкапсуляция используется не только в объектно-ориентированном подходе, однако возможность объединения структур данных и поведения в одной сущности делает инкапсуляцию более ясной и более мощной по сравнению с ее реализацией в языках типа Fortran, Cobol и С.

Абстракция (abstraction) означает сосредоточение на важнейших аспектах приложения и игнорирование всех остальных. Сначала принимается решение о том, что представляет собой объект и что он делает, а уже затем подбирается способ его реализации. Использование абстракций позволяет сохранить свободу принятия решений как можно дольше благодаря тому, что детали не фиксируются раньше времени. Большинство современных языков программирования позволяют абстрагировать данные, но наследование и полиморфизм значительно расширяют возможности концепции абстрагирования. Умение создавать абстракции, вероятно, является самым важным качеством для объектно-ориентированного разработчика.

Соседние файлы в предмете Объектно-ориентированное программирование