Как стать автором
Обновить

MVC — это не Spring Web

Время на прочтение2 мин
Количество просмотров7.2K

Наверно, я как многие начинающие Java программисты узнал об MVC при знакомстве c фреймворком Spring, в частности, с Spring Web MVC. При изучении я делал умный вид и кивал в знак понимания данного паттерна в рамках фреймворка. Но ведь так и было, паттерн прост в объяснении, но что касается того что бы осознать его отдельно от Spring'a и даже использовать на практике, это в моей голове тогда не укрепилось.

И сегодня я хочу поделиться небольшим опытом применения данного паттерна на практике, точнее, результатом до и после его применения.

Если вы еще не знаете об MVC или немного подзабыли, советую для начала познакомится или освежить знания, так как смысл данной маленькой статьи зависит от этого. Советую статью на Habr - Шпаргалка по MV-паттернам для проектирования веб-приложений

Главной задачей моей библиотеки была - генерирование Excel документов по заданному шаблону.
В общем, опишу тот слой абстракций, который мне казался верным на тот момент, стоит отметить, что тогда я еще не вспоминал об MVC, но наитие было:

  • DocData Хранит бизнес данные для вставки в шаблон (Properties для вставки по тегам и коллекции для создания таблиц)

  • Builder Должен отвечать за создание самого документа, на основе шаблона и переданного DocData класса

    • ExcelBuiler - Реализация для создания excel документов

  • DataMaker Данный слой многозадачный...

    • DataAnnotationMaker - Реализация для получения данных из бизнес логики посредством обычного POJO класса с незамысловатыми аннотациями.

    • Так же, каюсь, всякая данная реализация должна была быть связующим звеном между DocData и Builder

Я опустил другие не мало важные части моей маленькой библиотеки, так как они не имеют значения для данной статьи (или я просто не хочу еще за них отвечать...)

В общем, что изменилось когда я вспомнил об MVC паттерне?
На самом деле, мало и одновременно много, но с начала я покажу что у меня получилось после применения данного подхода:

  • ModelData Да, я просто переименовал DocData

  • View бывший Builder

    • ExcelView

  • Model сюда перешла главная и большая часть DataAnnotationMaker

    • AnnotationModel

  • Controller связующая часть между Model и View

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

Всем спасибо, это моя первая статья, буду рад любой конструктивной критике.

Теги:
Хабы:
Всего голосов 7: ↑4 и ↓3+1
Комментарии1

Публикации

Истории

Работа

Java разработчик
333 вакансии

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
11 сентября
Митап по BigData от Честного ЗНАКа
Санкт-ПетербургОнлайн
14 сентября
Конференция Practical ML Conf
МоскваОнлайн
19 сентября
CDI Conf 2024
Москва
20 – 22 сентября
BCI Hack Moscow
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
25 сентября
Конференция Yandex Scale 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн