Такая реализация может уменьшить сложность вашего совокупного (с учетом использованных объектов) кода приложения, обеспечивая большую согласованность внутри его и меньший объем тестирования.
Fostering Modularity (Стимуляция модульности)
После декомпозиции системы на объекты (например: машина -->
--> двигатель --> система питания --> датчик кислорода) вы формируете коды-модули с необходимыми границами. Эти объекты-модули обеспечиваются интерфейсами, посредством которых они взаимодействуют с другими модулями (которые могут быть другими объектами или функциями). Обычно данные и операции, не относящиеся к интерфейсу, одного модуля скрыты от других модулей с целью взаимной автономности.
Классы обеспечивают три уровня контроля над кодовой модульностью:
w Public (Общий) – любой код может иметь доступ к определенному свойству или вызвать определенный метод;
w Protected (Защищенный) – только собственные методы объектов какого-либо класса и объектов, чей подкласс выведен из первого класса, могут иметь доступ к свойствам и методам;
w Private (Приватный или конфиденциальный) – только класс и собственные объекты данного класса могут иметь доступ к свойствам и методам.
OverloadedFunctionsandOperators (Переопределяемые функции и операторы)
Когда вы создаете user-defined класс, вы можете переопределить некоторую общую стандартную функцию MATLABдля работы с вашим объектом. Например, класс последовательных MATLAB-портов переопределяет общуюстандартную функцию (fread) чтения данных из любых устройств, присоединенных к порту. Вы можете задать различные переопределяемые операторы для создаваемого класса из общих стандартных, например таких, как равенство (eq) или добавление (plus), для нужд представления и обработки ваших данных.
Reduce Code Redundancy (Уменьшение избыточности кода)
Эта способность объектно-ориентированного подхода уже рассматривалась. Приведем дополнительный пример. Допустим, что ваше приложение требует некоторого числа окон для интерактивной работы пользователей. Посредством определения класса, содержащего все общие аспекты диалоговых окон, и последующего выведения специализированных диалоговых классов вы можете:
w Использовать общий код для всех диалоговых окон;
w Ограничить тестирование частных кодов, учитывая возможности общего кода;
w Использовать общий интерфейс для целей диалога разработчиков;
w Осуществить согласованное представление и восприятие всех окон;
w Более просто реализовать общие изменения диалоговых окон.
LearningMore (Дополнительное обучение)
Смотрите раздел MATLAB Classes (MATLAB-классы) для дополнительного изучения этапов объектно-ориентированной разработки.
ClassDiagramsUsedInThisDocumentation (Диаграммы классов, использованные в этом документе)
Диаграммы, представляющие классы, содержащиеся в этом документе, подчиняются соглашениям, показанным в следующей таблице:
|
|
|
|
|
|
|
В таблице:
is_a – есть, принадлежит;
has_a – имеет, включает;
BankAccount – Банк счетов;
Properties – Свойства;
AccountNumber – Номер счета;
AccountBalance – Баланс счета;
Employee – Служащий;
Name – Имя;
Address – Адрес;
Asset –Авуары, Активы;
Stock – Основной фонд;
FileReader – Программа внесения записей в файл;
FileID – Идентификатор файла;
Car – Автомобиль;
Tire – Шина.
Matlab Classes Overview (Обзор MATLAB-классов)
Компоненты данного раздела и их краткие характеристики:
MATLAB Classes (MATLAB-классы) – классы в языке MATLAB;
Detailed Information and Examples (Детальная информация и примеры) -ссылки на документы с подробной информацией;
Defining Classes — Syntax Overview (Определение классов –
синтаксический обзор) – синтаксис определения классов и величин атрибутов;
Developing Classes — Typical Workflow (Создание классов – типовой рабочий процесс) – как создать класс с использованием простого примера;
Using Objects to Write Data to a File (Использование объектов для записи данных в файл) – почему используется класс, а не обычная функция;
Using the Editor and Debugger with Classes (Использование редактора и отладчика с классами) – доступ к файлам классов из редактора и отладчика;
Compatibility with Previous Versions (Совместимость с предыдущими версиями) – использование старых и новых MATLAB-классов;
MATLAB and Other OO Languages (MATLAB и другие ОО языки) – сравнение MATLAB с другими объектно-ориентированными языками;
Example — Representing Structured Data (Пример – представление структурированных данных) – объекты являются более эффективными структурами данных;
Example — Implementing Linked Lists (Пример – исполнение связных списков) – пример, показывающий преимущества handle-класса для данного приложения;
Example — Class for Graphing Functions (Пример – класс графических функций) – пример, который показывает некоторые программные приемы.
Matlab Classes (MATLAB-классы)
В этом разделе: |
Classes in the MATLAB Language (Классы в языке MATLAB); Some Basic Relationships (Некоторые базовые отношения); Examples to Get Started (Примеры для начала); Learning Object-Oriented Programming (Изучение объектно-ориентированного программирования). |
Classes in the MATLAB Language (Классы в языке MATLAB)
В языке MATLAB каждой величине назначается класс. Например, задание переменной-идентификатору величины с помощью оператора присваивания конструирует объект соответствующего класса (знаки «>>» в начале кода указывают на строку окна Command Window - Командное окно):
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.