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

Все языки ООП обеспечивают механизмы, которые помогают вам реализовать объектно-ориентированную модель. К ним относятся абстракция, инкапсуляция, наследование и полиморфизм. При правильном применении полиморфизм , инкапсуляция и наследование комбинируются так, что создают некую среду программирования, которая обеспечивает намного более устойчивые и масштабируемые программы, чем модель ориентированная на процесс. Удачно спроектированная иерархия классов является базисом для повторно используемого кода, в который вы вложили время и усилия при разработке и тестировании. Инкапсуляция позволяет реализациям мигрировать во времени без разрушения кода, который зависит от public-интерфейса классов. Полиморфизм позволяет создавать ясный, чувствительный и читабельный код.
Паттерны проектирования приложений
Паттерны проектирования - описание взаимодействия объектов и классов, адаптированных для решения общей задачи проектирования в конкретном контексте.
Паттерны проектирования упрощают повторное использование удачных проектных и архитектурных решений. С помощью паттернов можно улучшить качество документации и сопровождения существующих систем, позволяя явно описать взаимодействие классов и объектов, а также причины, по которым система была построена так, а не иначе.
Паттерн проектирования именует, абстрагирует и идентифицирует ключевые аспекты структуры общего решения, которые и позволяют применить его для создания повторного используемого дизайна. Он вычленяет участвующие классы и экземпляры, их роль и отношения, а также функции. При описании каждого паттернавнимание концентрируется на конкретной задаче объектно-ориентированного программирования.
Java
JavaEE
Сервисы | Контейнер | ||
---|---|---|---|
Web | EJB | Application Client | |
Concurrency Utilities | ![]() |
![]() |
|
Bean Validation | ![]() |
![]() |
![]() |
Batch | ![]() |
![]() |
|
EJB | ![]() |
||
EL | ![]() |
||
WebSocket | ![]() |
||
JSONP | ![]() |
![]() |
![]() |
Java Mail | ![]() |
![]() |
![]() |
JSONB | ![]() |
![]() |
![]() |
JSTL | ![]() |
||
JSF | ![]() |
||
Java Persistence API (JPA) | ![]() |
![]() |
![]() |
Java Transaction API (JTA) | ![]() |
![]() |
|
Connectors | ![]() |
![]() |
|
Java Message Service (JMS) | ![]() |
![]() |
![]() |
Management | ![]() |
![]() |
![]() |
WS Metadata | ![]() |
![]() |
![]() |
Web Services | ![]() |
![]() |
![]() |
CDI & DI | ![]() |
![]() |
![]() |
JACC | ![]() |
![]() |
|
JAX-RS | ![]() |
![]() |
|
Security | ![]() |
![]() |
|
JASPIC | ![]() |
||
HTTP | |||
HTTPS | |||
JDBC API | |||
JNDI (Java Naming and Directory Interface) |
Web Services
Двумя самыми заметными стандартами реализации веб-служб являются SOAP и REST.
HTML
HTML (Hyper Text Markup Language) - язык разметки гипертекста. В данном случае слово "гипертекст" означает, что с помощью языка HTML вы можете создвать ссылки, позволяющие посетителям быстро и легко перемещаться с одной страницы на другую.