Не зная более подробно о вашей проблеме есть несколько вопросов, которые можно обсудить:
Три уровня архитектуры является хорошей идеей, потому что они, как правило, легко отделить проблемы классов, которые делают их в более гибкий и легкий для понимания категории:
1) данные/сохраняемости 2) бизнес-логика 3) представление/GUI
После этого основного узора имеет смысл с любым программным проектом, где сбор и поиск (подавляющее большинство данных biz apps). Есть и десятки других причин, и слишком много, чтобы перечислить здесь.
Теперь возможность получить трехуровневую архитектуру путем реорганизации существующей базы кода сильно зависит от того, как этот код был разработан. И это порождает возрастной вопрос разработки программного обеспечения: реорганизуем ли мы или начинаем с нуля? Все зависит от кода ... и людей, которые пишут «новый» код.
Я бы предположил, что если ваши программисты хорошо знают домен и то, что они пытаются выполнить (или звездную техническую спецификацию), тогда переписать может быть полезно, даже если рефакторинг представляется как возможность. И наоборот, если те же самые программисты не имеют экспертных знаний в проблемной области или нет спецификации, возможно, стоит попробовать и реорганизовать существующую логику в три уровня и тем самым сохранить логику логики, которая была первоначально установлена.
Короче говоря, многие книги были написаны о дилемме, с которой вы сталкиваетесь. Но есть два эмпирических правила программирования, которые я рассмотрел здесь, и это будет отображаться в любом руководстве по разработке программного обеспечения:
- Структура хорошая, например. три уровня архитектуры, MVC, шаблоны
- рефакторинга хорошо - приводит к чище, ремонтопригодны, производительным, понятный код
Успехов!
Просто потому, что они используют MVC, это не значит, что у них есть архитектура «N-уровня». «N-Tier» (должен использоваться) используется для разрыва зависимостей между уровнями. Просто использование MVC не обеспечивает этого. Например, вполне возможно передать модель доступа к данным в представление, в результате чего уровень представления зависит от уровня доступа к данным. При таком типе зависимости у вас больше нет возможности иметь отдельные уровни. –
Просто потому, что это «возможно» не означает, что это происходит в его конкретном случае. Совершенно возможно иметь бизнес-логику на уровне доступа к данным для приложения N-Tier'd, но это не значит, что это должно произойти. Хорошо сконструированное приложение MVC такое же, как и хорошо разработанное приложение N-Tier'd, когда дело доходит до разделения проблем. –