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