Мышление в слоях - это хороший подход. Подумайте, как вы взаимодействуете с базой данных и для каких объектов вы извлекаете данные, и создайте для них классы «Уровень данных». Их целью должно быть строго взаимодействие с базой данных и, возможно, возвращение набора данных с соответствующими данными (создайте стандарт и следуйте ему!). Затем подумайте, какие бизнес-правила вы применяете к данным для этого объекта, и создайте класс «Бизнес-уровень» с методами, которые вызывают ваш класс уровня данных и применяют эти правила на этом уровне. На этом этапе данные должны быть готовы к отображению, и ваш «Уровень представления» (кодовый компонент) отвечает за то, где / когда / как это выполняется.
Мое объяснение не очень хорошее, но, надеюсь, вы поняли идею.