Вот фон, возможно, некоторые термины неверны, так как я не эксперт в этой области:
Я применил несколько лет назад следующую архитектуру, чтобы получитьповторное использование кода и разделение задач:
- Уровень представления : использование ASP.NET с C #.Здесь запрограммирована логика веб-страницы, но бизнес-логика определяется на отдельном слое
- Уровень определения модели : группирует все бизнес-объекты системы (т. Е. Документ, Пользователь, Папка).На объекте не определены действия (методы, кроме методов получения и установки).Он просто представляет запись из таблицы (или объединения таблиц) в базе данных
- Уровень бизнес-логики : предложения здесь называются "Двигатели" ,и у них есть все взаимодействия бизнес-правил для каждого бизнес-объекта (т. е. DocumentEngine имеет все методы, которые представляют бизнес-правила для обработки документов в системе, такие как добавление, удаление, обновление и т. д.).Эти методы используют (в качестве параметров) и возвращают бизнес-объекты (определенные в определении модели) во многих случаях, в других просто используют / возвращают примитивы.
- Уровень доступа к данным : этот уровень извлекает данные(с использованием службы доступа к данным) из базы данных и преобразует в бизнес-объекты (создание экземпляра объекта, определенного в MDL, и установка значений его свойств с соответствующими значениями полей, извлеченными из БД).Как и уровень бизнес-логики, он использует и возвращает бизнес-сущности или примитивы, ранее упомянутые как отдельный объект или набор объектов (с использованием обобщений)
- Служба доступа к данным : Использование Simple FactoryШаблон, создает соединение с базой данных в соответствии с указанными параметрами, поэтому он может извлекать информацию из нескольких механизмов БД.
Хорошо, тогда, когда мне нужно, например, список документов, я открываю веб-страницу, вызывается бизнес-правило с правильными параметрами (т. Е. Идентификатор папки для этого случая).Затем уровень доступа к данным использует DAS для запроса к базе данных и преобразует извлеченные записи в бизнес-объекты (определенные в MDL).Эта бизнес-сущность (или совокупность сущностей) возвращается через слои на уровень представления.
Теперь, возможно, это не лучшая архитектура, но она мне очень понравилась, так что теперь яЯ пытаюсь использовать тот же подход, но использую Java с Spring MVC в качестве уровня представления, поэтому у меня будет
- Presentation (Spring MVC)
- Уровень определения модели
- Уровень бизнес-логики
- Уровень доступа к данным
- Служба доступа к данным (фабрика баз данных с использованием JDBC)
Бизнес-требования: «создать легковесное корпоративное веб-приложение,его можно легко расширить, подключить к нескольким БД (Oracle, SQL Server, mySQL) с минимальными изменениями кода, поддержкой I18N, возможностью регистрации действий пользователей, несколькими режимами представления (Web, Mobile) и очень хорошо смотрится как приложения Web2.0XD "
Что ты думаешь?Это хорошее определение архитектуры?Должен ли я что-то изменить, чтобы соответствовать требованиям бизнеса?
Заранее благодарим за сотрудничество