Содержание
- 2. Проектирование ПО. Структурный рефакторинг Рефакторинг Рефакторинг (refactoring) — процесс улучшения внутренней структуры ПО без изменения внешнего
- 3. Проектирование ПО. Структурный рефакторинг Цели рефакторинга Целью рефакторинга является устранение следующих нежелательных свойств кода: дублированный код
- 4. Проектирование ПО. Структурный рефакторинг Методы рефакторинга Небольшие изменения кода могут привести к впечатляющим результатам. К сожалению,
- 5. Проектирование. Структурный рефакторинг Класс извлечения (Extract Class) В случае большого класса уместны: Класс извлечения и Интерфейс
- 6. Проектирование. Структурный рефакторинг Метод подключения (Subsume Method) Метод подключения устраняет метод включением его функциональных возможностей в
- 7. Проектирование. Структурный рефакторинг Интерфейс извлечения Интерфейс извлечения: «Несколько клиентов используют то же самое подмножество интерфейса класса
- 8. Проектирование ПО. Структурный рефакторинг Паттерны рефакторинга Паттерны рефакторинга — структурные паттерны, используемые в рефакторинге кода. Паттерны
- 9. Проектирование ПО. Структурный рефакторинг Коллекция идентичности объектов (Identity Map) Фаулер различает явно заданные (explicit) и общие
- 10. Проектирование ПО. Структурный рефакторинг Коллекция идентичности объектов 18: public class EIdentityMap { 21: private Map OIDToObj;
- 11. Проектирование. Структурный рефакторинг Преобразователь данных (Data Mapper) Паттерн Преобразователь данных: «слой Преобразова-телей (Mappers), который перемещает данные
- 12. Проектирование. Структурный рефакторинг Загрузка — импорт Когда записи данных будут извлечены из БД, MDataMapper превращает их
- 13. Проектирование. Структурный рефакторинг Выгрузка — экспорт Преобразователь данных должен обеспечивать и выгрузку объектов в БД. Процесс
- 14. Проектирование. Структурный рефакторинг Преобразователь данных MDataMapper Используется единственный класс Преобразователя данных (MDataMapper), чтобы размещать и удалять
- 15. Проектирование. Структурный рефакторинг Альтернативные стратегии Преобразователя данных Более сложные системы или последовательные итерации могут требовать альтернативных
- 16. Проектирование. Структурный рефакторинг Несколько Преобразователей данных MDataMapper имел отдельные методы для управления запросами клиента, направленные на
- 17. Проектирование. Структурный рефакторинг Преобразование метаданных Цель паттерна Преобразователь метаданных — динамически формировать объектно-реляционное преобразование, основанное на
- 18. Проектирование. Структурный рефакторинг Загрузка по требованию (Lazy Load) Основные виды операций извлечения: Идентифицирующая загрузка (Identity load)
- 19. Проектирование ПО. Структурный рефакторинг Инициализация по требованию (Lazy Initialization) Инициализация по требованию может использоваться в EOutMessage,
- 20. Проектирование. Структурный рефакторинг Виртуальный заместитель (Virtual Proxy) Заместитель заменяет объект и выступает в роли реального объекта.
- 21. Проектирование. Структурный рефакторинг Виртуальный заместитель (Virtual Proxy) Предположим, что объект EOutMessage дол-жен быть загружен и что
- 22. Проектирование. Структурный рефакторинг Виртуальный заместитель (Virtual Proxy) Если его нет, запрашивается MDataMapper, что-бы инициализиро-вать его. Затем
- 23. Проектирование ПО. Структурный рефакторинг Заместитель идентификатора объекта (OID Proxy) Одноэлементный класс (EIdentityMap), который обеспечивает задание OID
- 24. Проектирование. Структурный рефакторинг Навигация по коллекции идентичности объектов Паттерн Заместитель идентификатора объекта. contactOID класса EOutMessage служит
- 25. Проектирование. Структурный рефакторинг Навигация по коллекции идентичности Каждый объект пакета entity знает изменен он или нет.
- 26. Проектирование. Структурный рефакторинг Навигация по классам Навигация по классам требует, чтобы объект пакета entity не содержал
- 27. Проектирование ПО. Структурный рефакторинг Единица работы (Unit of Work) Объекты пакета entity загружаются если они: 1)
- 28. Проектирование ПО. Структурный рефакторинг Единица работы (Unit of Work) Подход, где каждый объект пакета entity знает,
- 29. Проектирование ПО. Структурный рефакторинг Улучшенная модель классов
- 30. Проектирование. Структурный рефакторинг Слои presentation и control
- 31. Проектирование. Структурный рефакторинг Слой domain
- 32. Проектирование. Структурный рефакторинг Пакеты mediator и foundation
- 33. Проектирование ПО. Структурный рефакторинг Резюме Рефакторинг — процесс чистки и улучшения внутренней структуры кода без изменения
- 34. Проектирование ПО. Структурный рефакторинг Резюме Загрузка (импорт, материализация) — процесс извлечения записей из БД и преобразования
- 35. Проектирование ПО. Структурный рефакторинг Резюме Навигация по коллекции идентичности объектов использует класс Коллекция идентичности объектов каждый
- 37. Скачать презентацию