MATLAB R2008a. Классы. Часть1: Учебное пособие, страница 7

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

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 - Командное окно):