Проектирование приложений
Объектно-ориентированное программирование - это мощная и естественная парадигма для создания программ, которые переживают неизбежные изменения, сопровождающие жизненный цикл любого большого программного проекта (на всех этапах этого цикла, включая разработку концепций, рост и старение). Например, как только вы получаете хорошо определенные объекты и ясные надежные интерфейсы к этим объектам, вы можете изящно и безболезненно удалить или заменить устаревшие части системы.
Проектирование объектно-ориентированных программ - нелегкое дело, а если их нужно использовать повторно, то все становится еще сложнее. Необходимо подобрать подходящие объекты, отнести их к различным классам, соблюдая разумную степень детализации, определить интерфейсы классов и иерархию наследования. Установить отношения между классами. Дизайн должен, с одной стороны, соответствовать решаемой задаче, с дугой - быть общим, чтобы удалось учесть все требования, которые могут возникнуть в будущем.
Системы необходимо проектировать с учетом их дальнейшего развития. Для проектирования системы, устойчивой к таким изменениям, следует предположить, как она будет изменяться на протяжении отведенного ей времени жизни. Если при проектировании системы не принималась во внимание возможность изменений , то есть вероятность, что в будущем ее придется полностью перепроектировать.Это может повлечь за собой переопределение и новую реализацию классов, модификацию клиентов и повторный цикл тестирования. Перепроектирование отражается на многих частях системы, поэтому непредвиденные изменения всегда оказываются дорогостоящими.
Во многих объектно-ориентированных системах вы встретите повторяющиеся паттерны, состоящие из классов и взаимодействующих объектов. С их помощью решаются конкретные задачи проектирования. Благодаря паттернам систему всегда можно модифицировать определенным образом.
Вот некоторые типичные причины перепроектирования, а так же паттерны, которые позволяют этого избежать:
Причина | Паттерны |
При создании объекта явно указывается класс | |
Зависимость от конкретных операций | |
Зависимость от аппаратной и программной платформ | |
Зависимость от представления или реализации объекта | |
Зависимость от алгоритмов | |
Сильная связанность | |
Расширение функциональности за счет порождения классов | |
Неудобства при изменении классов |
Подкатегории
Концепции проектирования приложений 4
Все языки ООП обеспечивают механизмы, которые помогают вам реализовать объектно-ориентированную модель. К ним относятся абстракция, инкапсуляция, наследование и полиморфизм. При правильном применении полиморфизм , инкапсуляция и наследование комбинируются так, что создают некую среду программирования, которая обеспечивает намного более устойчивые и масштабируемые программы, чем модель ориентированная на процесс. Удачно спроектированная иерархия классов является базисом для повторно используемого кода, в который вы вложили время и усилия при разработке и тестировании. Инкапсуляция позволяет реализациям мигрировать во времени без разрушения кода, который зависит от public-интерфейса классов. Полиморфизм позволяет создавать ясный, чувствительный и читабельный код.
Паттерны проектирования приложений 24
Паттерны проектирования - описание взаимодействия объектов и классов, адаптированных для решения общей задачи проектирования в конкретном контексте.
Паттерны проектирования упрощают повторное использование удачных проектных и архитектурных решений. С помощью паттернов можно улучшить качество документации и сопровождения существующих систем, позволяя явно описать взаимодействие классов и объектов, а также причины, по которым система была построена так, а не иначе.
Паттерн проектирования именует, абстрагирует и идентифицирует ключевые аспекты структуры общего решения, которые и позволяют применить его для создания повторного используемого дизайна. Он вычленяет участвующие классы и экземпляры, их роль и отношения, а также функции. При описании каждого паттернавнимание концентрируется на конкретной задаче объектно-ориентированного программирования.