Если бы у нас была определенная иерархия в приложении. Для бывшей 3-уровневой архитектуры, как мы ограничиваем последующих разработчиков от нарушения норм?
Например, в случае архитектуры MVP (не asp.net MVC) докладчик всегда должен связывать модель и представление. Это помогает в написании правильных программ модульных тестов. Однако у нас были случаи, когда люди напрямую импортировали модель и вызывали функции, нарушающие нормы, и, следовательно, контрольные примеры не могли быть написаны должным образом.
Есть ли способ, которым мы можем ограничить, какие классы могут наследовать от набора классов? Я рассматриваю различные возможности, в том числе использование другого шаблона проектирования, однако новый подход должен стоить изменения кода.