Я надеюсь, что это подходит для SO.
Учитывая два класса: ClassA является основным объектом контроллера для приложения.ClassB контролирует аппаратное устройство (по сети, USB, последовательный порт, что-то).ClassA создает объект ClassB и использует его для отправки / получения данных от аппаратного устройства.
Когда пользователь хочет закрыть приложение, ClassA отправляет сообщение «shutdown» в ClassB.В некоторых случаях ClassB требуется длительный период времени для завершения выключения.Может быть, он должен сбросить оборудование в известное состояние или дождаться завершения выполняемой операции.
Каков наилучший шаблон проектирования для связи между ClassA и ClassB для минимизации связи?Обратный вызов (метод или блок) в сообщении выключения?Протокол делегирования с определенным методом shutdownComplete?Что-то еще?
Кроме того, ClassB действительно является «абстрактным» суперклассом, потому что есть несколько аппаратных устройств, поэтому для каждого из них есть подкласс B.Я не думаю, что это повлияет на дизайн.
Спасибо!