У меня возникли проблемы с определением того, как должны взаимодействовать два класса, и проблема, с которой я сталкиваюсь, кажется, что она возникнет много, поэтому мне было интересно, знает ли кто-нибудь шаблон проектирования (или какое-либо решение), которое решает проблемумоя проблема.
В основном у меня есть два класса.Класс A занимается отображением информации для пользователя, а класс B - хранением данных.Класс A должен получать данные из класса B, форматировать данные на основе внутреннего состояния класса A и выводить данные.Например, класс B содержит английские строки, а класс A всегда будет переводить эти строки в язык, указанный в переменной экземпляра класса A, прежде чем выполнять какую-либо дальнейшую их обработку.
Я могу предложить два возможных решениядля этого, но ни один из них не кажется очень чистым.
Сделать класс B переменной экземпляра класса A. Написать функцию в классе A, которая извлекает данные из класса B и форматирует их для использованияв других функциях класса А. Это решение не кажется хорошим, потому что оно не мешает классу А напрямую обращаться к данным в классе В без их форматирования.
Сделать класс С таким, чтобырасширяет класс B. Сделайте класс C переменной экземпляра класса A. Класс C переопределит получатели класса B, чтобы форматирование всегда применялось к данным.Однако для форматирования данных класс C должен знать о внутреннем состоянии класса A.Это может быть достигнуто путем передачи указателя на класс A в конструктор класса C. Затем класс C может вызвать функцию класса A, которая вычисляет внутреннее состояние класса A.
Дайте мне знатьесли это сбивает с толку, и я мог бы привести более конкретный пример.
спасибо