У меня есть три класса, взаимодействующих интересным образом. Один - это модельный класс, и к нему должны обращаться оба других класса, поэтому один его экземпляр сохраняется как член каждого из них. Оба эти класса взаимодействуют с моделью по-разному.
Есть пара случаев, когда объект модели должен быть полностью отброшен и заменен новым, и это усложняет ситуацию. И эти случаи возникают в обоих классах просмотра / контроля. Таким образом, любой из этих классов должен иметь возможность отправлять сигнал другому, говоря: «Нам нужно координировать и облегчать замену нашего объекта Model новым объектом Model». Прямо сейчас у меня есть код в классе B, чтобы сказать классу A построить новую модель и отправить ее обратно, но теперь мне нужно разобраться с противоположной ситуацией, когда событие возникает в классе A, и, к сожалению, класс A не имеет ссылки на класс B и, вероятно, не должен.
Какой хороший способ справиться с этим?
Обновление : Извините, ребята, это не может быть одиночкой. Синглтоны - это когда вам нужно гарантировать, что есть только один предмет. Это не имеет ничего общего ни с одним из требований, которые я изложил выше. Этот класс не одиночный и не должен быть.
Обновление : До сих пор на самом деле был только один экземпляр этого класса Model, но у меня было смутное подозрение, что мне нужно было учесть больше, и я не хотел ограничивать себя использование шаблона проектирования Singleton, когда это фактически решает проблемы, отличные от того, что у меня есть Оказывается, я был прав: вчера я получил новое требование, и теперь мне нужно поддержать произвольное число из них. :) Не ограничивайте себя, когда это не нужно, и не используйте шаблоны проектирования в ситуациях, когда они не были предназначены!