6. Композиция вместо наследования
Одну из самых сильных связей между объектами дает наследование, поэтому, по возможности, его следует избегать и заменять композицией. Эта тема хорошо раскрыта в статье Герба Саттера — «Предпочитайте композицию наследованию».
Могу только посоветовать в данном контексте обратить внимание на шаблон Делегат (Delegation/Delegate) и пришедший из игр шаблон Компонет (Component), который подробно описан в книге «Game Programming Patterns» (соответствующая глава из этой книги на английском и ее перевод).
5-лекция. Проектирование архитектуры. Документация архитектуры программного обеспечение
ПЛАН:
Варианты применения архитектурной документации
Представления
Выбор значимых представлений
Документирование представления
Шаблон для документирования интерфейсов
Уже неоднократно мы убеждались в том, что программная архитектура играет центральную роль в процессе разработки системы и в значительной степени определяет характер разрабатывающей ее компании. Она детально описывает систему и проект. На ее основе распределяются обязанности групп проектировщиков и исполнителей реализации, и именно она является основным носителем таких атрибутов качества системы, как производительность, модифицируемость и безопасность, — без объединяющей архитектурной концепции их не реализовать. Архитектура есть артефакт ранних стадий анализа, обеспечивающий способность применяемого проектного решения породить систему с приемлемыми характеристиками. Кроме того, на архитектуре в значительной степени основываются следующие за развертыванием операции изучения системы, ее сопровождения и минимизации вкладываемых ресурсов. Короче говоря, архитектура связывает воедино все этапы проекта и в таком виде представляет его перед многочисленными заинтересованными лицами.
Документирование архитектуры венчает процесс ее создания. Даже самая блестящая архитектура оказывается совершенно бесполезной, если никто не в состоянии в ней разобраться или (что еще хуже) если у заинтересованных лиц складывается о ней превратное представление. Если уж вы задались целью разработать достойную архитектуру, ее необходимо описать с достаточной степенью детализации, недвусмысленно и структурированно — так, чтобы любой желающий смог без затруднений найти в документации те сведения, которые ему требуются. В противном случае архитектура имеет шанс оказаться непрактичной, и затраченные на ее производство усилия полетят коту под хвост.
На материале настоящей главы вы узнаете, какую именно информацию об архитектуре следует вносить в ее документацию, и ознакомитесь с методами ее фиксации. Кроме того, мы обсудим существующие в настоящее время нотации, в том числе UML.
Do'stlaringiz bilan baham: |