Вам нужно разбить этот дизайн на подсистемы: управление клиентами, выставление счетов, каталог, заказ, оплата и покупки.
Вам также понадобятся подсистемы для управления пользовательским интерфейсом и управления хранением данных, ноу вас обычно есть библиотеки и платформы для упрощения их реализации (например, MVC и среды персистентности).
В итоге вы можете получить классы, которые похожи в разных подсистемах (например, «клиент» в управлении клиентами и в порядке), новам также нужно учитывать, что классы играют разные роли в этих разных контекстах.
Я не большой поклонник DDD, но это простое введение в разделение приложений.