This page was last modified 05:37, 20 April 2008.
ECOM (RU)
From Forum Nokia Wiki
Перевод с английского, оригинальная статья находится здесь.
С помощью базовых абстрактных классов и виртуальных функций C++ позволяет программам вызывать функции интерфейсов, не зная названий реализующих их классов. Если спуститься с уровня кода на уровень бинарных файлов, то вы увидите, что для реализации этого подхода в Symbian OS используются полиморфные DLL. Они реализуют определенные интерфейсы и позволяют добавлять новые функции в существующие программные комплексы. Однако, для использования полиморфных DLL каждая программа должна иметь свой механизм определения и загрузки доступных реализаций. ECom устраняет это дублирование функциональности, предоставляя общий программный комплекс, реализующий единый механизм для:
- регистрации и обнаружения реализаций интерфейсов
- выбора подходящей для использования реализации
- обеспечения контроля версий для plug-in'ов
Для того, чтобы продемонстрировать, как ECom справляется с этим, давайте вспомним задачи, возникающие в любой системе с использованием plug-in'ов.
Клиенту требуется получить доступ к объекту для выполнения какой-нибудь обработки данных. Характеристики объекта заранее не известны. Общие черты процесса обработки известны и объявлены в интерфейсе, но могут существовать несколько вариантов выполнения обработки, и, соответственно, несколько реализаций этого интерфейса.
Вот четыре явно-объявленных роли в подобной системе:
- Клиент (client), желающий получить доступ к сервисам
- Интерфейс (interface), определяющий как получить доступ к сервисам
- Реализация интерфейса (interface implementation), выполняющая требуемую обработку
- Комплекс (framework), предоставляющий клиенту доступ к реализациям
Взаимосвязи между ними показаны на следующей UML диаграмме:
Механизм реализаций формирует основу этой системы. Он ответственен за предоставление способов определения и загрузки подходящей реализации интерфейса во время работы программы. ECom является подобным механизмом.
С полным руководством по ECOM вы можете ознакомится в документации Symbian Developer Library
| Related Discussions | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| how can i insert flash mmi ECOM plugin? | kissue99 | Symbian User Interface | 0 | 2007-11-16 11:02 |
| Any simple example using SIP Stack? | kkoon50 | General Symbian C++ | 35 | 2007-04-18 08:32 |
| Incoming Invite not received by SIPExample on E61 | mevasudeva | VoIP | 5 | 2008-03-16 09:22 |
| Phonebook plugin | raju_ajmera | General Symbian C++ | 9 | 2007-08-23 11:20 |
| Reporting defects in Carbide.vs? | superfrank | Symbian Tools & SDKs | 2 | 2006-03-15 09:26 |

