Визуальное программирование и MFC


Преимущества СОМ - часть 2


как заменить текущую версию программы на новую, с дополнительными возможностями, не повредив существующим клиентам старой версии? Способность СОМ-объекта поддерживать более одного интерфейса — ключ к решению этой проблемы. Клиент объекта СОМ должен получить указатель нужного ему интерфейса. Дополнительные возможности новой версии объекта можно ввести через новый интерфейс. Старые интерфейсы не изменяются (фактически СОМ запрещает изменение существующих интерфейсов), так что использующие их клиенты не затрагиваются. Причем старые клиенты никогда не запросят указатель на новые интерфейсы. А вот у новых клиентов имеется достаточная информация, чтобы запрашивать новые интерфейсы, реализующие дополнительные возможности; таким образом, новая версия повлияет только на новых клиентов.

СОМ решает и другую сторону этой проблемы — когда клиент ожидает, что объект поддерживает некоторую функциональность, но тот еще не обновлен. Такой клиент запрашивает указатель интерфейса, реализующего новые возможности, но в ответ ничего не получает. СОМ предоставляет ясный способ определить, что объект является не вполне тем, чего ожидает клиент, а потому последний можно написать так, чтобы в этой ситуации он корректно деградировал, а не просто “ломался”. Этот простой и ясный подход, допускающий независимое обновление как клиентов, так и используемых ими объектов, — одно из самых больших достижений СОМ.

Microsoft применяет СОМ в большинстве продуктов; она используется для спецификации расширений Microsoft Windows и Microsoft Windows NT, а также для определения стандартных интерфейсов к различным типам сервисов. Выгоды применения СОМ в разработке всех типов программного обеспечения несомненны.




Начало  Назад  Вперед



Книжный магазин