Суббота, 18.05.2024, 14:13Приветствую Вас Гость | RSS
IT Solutions
Меню сайта
Наш опрос
Оцените мой сайт
Всего ответов: 407
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Каталог статей


Главная » Статьи » Мои статьи

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

Желательно следовать принципу инверсии зависимостей:
  • Высокоуровневые модули не должны зависеть от низкоуровневых
И те, и другие должные зависеть от абстракций.
  • Детали должны зависеть от абстракций, а не наоборот.
Абстрактные базовые классы должны беспокоиться об определении функциональности, но не о её реализации.

Преимущества принципа инверсии зависимостей.

1. Повышение надежности
  • Менее стабильные части системы (реализации) зависят от более стабильных частей (абстракций). При плохом проектировании (когда проект строится на конкретных базовых классах) небольшие изменения в одном месте оказывают влияние на самые неожиданные части системы.
2. Повышение гибкости
  • Дизайн, основанный на абстрактных интерфейсах обычно более гибок. Если абстракции корректно смоделированы, то при появлении новых требований легко разработать новые реализации
  • В то время, как дизайн, зависящий от многих конкретных деталей оказывается более жёстким в том смысле, что новые построения приводят к существенным изменения в ядре системы.
Обычно для того, чтобы обеспечить полиморфное удаление при проектировании отдаётся предпочтение открытому виртуальному деструктору, если только вы не используете брокер объектов (как COM или CORBA), который использует альтернативный механизм управления памятью. 

Дизайн с использованием множественного наследования может быть очень выразительным, но он труднее в разработке и более подвержен ошибкам.
Особенно сложным становится управление состояниями
Категория: Мои статьи | Добавил: B@R_LOG (18.11.2013)
Просмотров: 823 | Теги: инверсии зависимостей, надёжность гибкость модульность про, абстрактный интерфейс, интерфейс программы | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Категории раздела
Мои статьи [11]
Поиск
Друзья сайта
  • МЫ в "ВКонтакте"
  • Система Orphus