- •1) Анализ.
- •2)Проектирование.
- •Методы объектов
- •Методы класса и данные класса
- •Инкапсуляция
- •Директивы видимости
- •Инкапсуляция при помощи свойств(новое в дельфи)
- •Свойства массивы
- •Многомерные массивы свойств
- •Индексированные свойства
- •Ссылочная модель Дельфи. (см тетрадь) Наследование
- •Наследование и совместимость типов
- •Безопасное преобразование типов
- •Интерфейсы
- •Технические приемы, связанные с реализацией интерфейса.
- •Обработка исключений.
- •Создание пользовательской особой (исключительной ситуации)
- •[]_[] Ссылки на классы []_[]
- •Создание компонентов при помощи ссылок на класс
- •Класс tObject
- •Конструктор Create класса tObject.
- •События.
- •Указатели на методы
Классический алгоритм
1)анализ
2) проектирование
3) программирование
4) тестирование
5) внедрение
Это водопадная модель.
-непригодность для создания сложных систем, состоящих из большого числа модулей
-высокие затраты на организацию внесения изменений.
-несовместимость с современными методами разработки и непригодность в случае Объектно-ориентированной разработки.
-результаты доступны только в конце проекта
Разработка объектно-ориентированной программной системы – поступательный итеративный процесс постепенного улучшения программы, включающий следующие этапы: анализ, проектирование, эволюция, модификация.
1) Анализ.
Цель – полное последовательное доступное для понимания описание задачи. Разрабатывается структурная схема: основные объекты и сообщения между ними.
Результат анализа – полная (на данный момент времени) модель задачи, к решению которой приступают к этапу проектирования.
2)Проектирование.
Различают логическое и физическое.
Логическое – принятие концептуальных решений независимых от аппаратной и программной базы, выделение основных классов, их свойств и методов. При этом используются специальные методы: полиморфизм, перегрузка и т.д и инструментальные средства проектирование (case средства, Computer Aided Software Engineering).
В результате получается одна или несколько взаимосвязанных иерархий классов.
Физическое проектирование – детализация структур данных, разработка алгоритмов для методов классов, группировка классов в модули, спецификация способов взаимодействия с оборудованием, ПО, разработка вспомогательных классов и т.д.
3) Эволюция – процесс создания прототипов, которые в итоге образуют конечную реализацию программы. Начинается с создания основной программы, и каркас основных классов. Желательно в первой итерации получить работающий прототип, который отлаживается и тестируется, затем к системе подключается следующая группа классов и т.д.
4)Модификация. Добавление новых функциональных возможностей, учет дефектов и изменившихся требований, как правило касается реализации классов, но не их интерфейсов.
Новые концепции ООП в Object Pascal
В языке Object Pascal, использующимся в Delphi, произошли следующие изменения в объектной модели, по сравнению с последней версией Borland Pascal.
1. Изменение в синтаксисе объявления и использования объектов.
2. Введение указателей на методы.(function ………… of Object).
3. Введение методов классов. (class function ………. ).
4. Введение ссылок на классы.
5.Изменение в организации определений и вызовов методов.
6. Введение раздела объявления интерфейса разработчика объектного типа (protected).
7.Введение раздела объявления интерфейса времени проектирования (published).
8.Введение механизмов RTTI (информация о типах времени выполнения).
9.Введение поддержки процедурных полей.
10. Введение понятия свойств (property).
Класс – это определенный пользователем тип данных, который обладает состоянием (представление класса) и набором операций (поведение класса).
Класс имеет некоторые внутренние данные и некоторые наборы методов. Методы класса реализуются в форме процедур или функций. Данные и методы класса описывают универсальные характеристики и поведение некоторого набора похожих объектов.
Объект – это экземпляр класса или переменная принадлежащая типу данных, являющемуся классом. Любой объект – это фактически существующая в памяти запись, т.е. в процессе выполнения программы каждый объект требует для хранения своего внутреннего представления некоторый объем памяти.
В новой объектной модели программист работает только с динамическими экземплярами классов (т.е. с теми, которые расположены в heap области(кучи) ).
Пример:
Старая модель Type PmyObject=^TMyObject TMyobject=object(Tobject) Myfield:TMyType Constructor Init; End; …………………………… Var MyObject:PMyObject; Begin MyObject:=New(PMyObject,Init ); MyObject^.MyField:=’123123123’; …………………………………….. …………………………………….
|
Новая модель
Type TMyObject=class(Tobject) myField:TMyType; constructor Create; end; var MyObject:TMyObject;
begin MyObject:=TMyObject.Create; MyObject.MyField:=…………..; ……………………………….. ……………………………… |