systems-ez
Включить/выключить навигацию
  • Home
  • Проектирование
  • Java
  • HTML
  • CSS
  • JavaScript
  • Android
  • RegExp
  • Python
  • Базы данных
  • menu iconКонцепции
  • menu iconПринципы
  • menu iconПаттерны
    • menu iconАбстрактная фабрика
    • menu iconАдаптер
    • menu iconДекоратор
    • menu iconЗаместитель
    • menu iconИнтерпретатор
    • menu iconИтератор
    • menu iconКоманда
    • menu iconКомпоновщик
    • menu iconМост
    • menu iconНаблюдатель
    • menu iconОдиночка
    • menu iconПосетитель
    • menu iconПосредник
    • menu iconПриспособленец
    • menu iconПрототип
    • menu iconСостояние
    • menu iconСтратегия
    • menu iconСтроитель
    • menu iconФабричный метод
    • menu iconФасад
    • menu iconХранитель
    • menu iconЦепочка обязанностей
    • menu iconШаблонный метод

Проектирование приложений

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

Проектирование объектно-ориентированных программ - нелегкое дело, а если их нужно использовать повторно, то все становится еще сложнее. Необходимо подобрать подходящие объекты, отнести их к различным классам, соблюдая разумную степень детализации, определить интерфейсы классов и иерархию наследования. Установить отношения между классами. Дизайн должен, с одной стороны, соответствовать решаемой задаче, с дугой - быть общим, чтобы удалось учесть все требования, которые могут возникнуть в будущем.

Системы необходимо проектировать с учетом их дальнейшего развития. Для проектирования системы, устойчивой к таким изменениям, следует предположить, как она будет изменяться на протяжении отведенного ей времени жизни. Если при проектировании системы не принималась во внимание возможность изменений , то есть вероятность, что в будущем ее придется полностью перепроектировать.Это может повлечь за собой переопределение и новую реализацию классов, модификацию клиентов и повторный цикл тестирования. Перепроектирование отражается на многих частях системы, поэтому непредвиденные изменения всегда оказываются дорогостоящими.

Во многих объектно-ориентированных системах вы встретите повторяющиеся паттерны, состоящие из классов и взаимодействующих объектов. С их помощью решаются конкретные задачи проектирования. Благодаря паттернам систему всегда можно модифицировать определенным образом.

Вот некоторые типичные причины перепроектирования, а так же паттерны, которые позволяют этого избежать:

Причина Паттерны
При создании объекта явно указывается класс
  • абстрактная фабрика
  • фабричный метод
  • прототип
Зависимость от конкретных операций
  • цепочка обязанностей
  • команда
Зависимость от аппаратной и программной платформ
  • абстрактная фабрика
  • мост
Зависимость от представления или реализации объекта
  • абстрактная фабрика
  • мост
  • хранитель
  • заместитель
Зависимость от алгоритмов
  • мост
  • итератор
  • стратегия
  • шаблонный метод
  • посетитель
Сильная связанность
  • абстрактная фабрика
  • мост
  • цепочка обязанностей
  • команда
  • фасад
  • посредник
  • наблюдатель
Расширение функциональности за счет порождения классов
  • мост
  • цепочка обязанностей
  • компоновщик
  • декоратор
  • наблюдатель
  • стратегия
Неудобства при изменении классов
  • адаптер
  • декоратор
  • посетитель

 

Фильтры

Подкатегории

Принципы проектирования приложений 9

Концепции проектирования приложений 4

Все языки ООП обеспечивают механизмы, которые помогают вам реализовать объектно-ориентированную модель. К ним относятся абстракция, инкапсуляция, наследование и полиморфизм. При правильном применении полиморфизм , инкапсуляция и наследование комбинируются так, что создают некую среду программирования, которая обеспечивает намного более устойчивые и масштабируемые программы, чем модель ориентированная на процесс. Удачно спроектированная иерархия классов является базисом для повторно используемого кода, в который вы вложили время и усилия при разработке и тестировании. Инкапсуляция позволяет реализациям мигрировать во времени без разрушения кода, который зависит от public-интерфейса классов. Полиморфизм позволяет создавать ясный, чувствительный и читабельный код.

Паттерны проектирования приложений 24

Паттерны проектирования - описание взаимодействия объектов и классов, адаптированных для решения общей задачи проектирования в конкретном контексте.

Паттерны проектирования упрощают повторное использование удачных проектных и архитектурных решений. С помощью паттернов можно улучшить качество документации и сопровождения существующих систем, позволяя явно описать взаимодействие классов и объектов, а также причины, по которым система была построена так, а не иначе.

Паттерн проектирования именует, абстрагирует и идентифицирует ключевые аспекты структуры общего решения, которые и позволяют применить его для создания повторного используемого дизайна. Он вычленяет участвующие классы и экземпляры, их роль и отношения, а также функции. При описании каждого паттернавнимание концентрируется на конкретной задаче объектно-ориентированного программирования.

  • Вы здесь:  
  • Главная
  • Проектирование

Наверх

© 2023 systems-ez