Перевизначення спільних модулів в умовах ієрархії бібліотек
Під час розробки кількох бібліотек, що перебувають на підтримці одна в одної, слід мінімізувати трудомісткість оновлення коду перевизначуваних спільних модулів у кожній із бібліотек. Для цього рекомендується використовувати таку методику:
|
Методична рекомендація (корисна порада) Під час розробки кількох бібліотек, що перебувають на підтримці одна в одної, слід мінімізувати трудомісткість оновлення коду перевизначуваних спільних модулів у кожній із бібліотек. Для цього рекомендується використовувати таку методику: 1. У бібліотеці нижнього рівня ієрархії (найбазовішій) оголошується перевизначуваний модуль за загальними правилами, викладеними вище. 2. У бібліотеках вищого рівня реалізація процедур і функцій перевизначуваного модуля базової бібліотеки за потреби може бути доповнена. При цьому в перевизначуваному модулі розміщується не сама реалізація (її код), а лише один виклик. Наприклад, у спільному модулі БазоваБібліотекаПеревизначуваний у бібліотеці верхнього рівня «Базова бібліотека» реалізація фактично розміщується в модулі МодульБазовоїБібліотеки: Процедура НалаштуванняІнтерфейсу(Знач ПараметриРоботи) Експорт // Початок: Базова бібліотека МодульБазовоїБібліотеки.НалаштуванняІнтерфейсу(Знач ПараметриРоботи); // Кінець: Базова бібліотека КінецьПроцедури у цьому ж спільному модулі БазоваБібліотекаПеревизначуваний у наступній бібліотеці верхнього рівня «Бібліотека другого рівня»: Процедура НалаштуванняІнтерфейсу(Знач ПараметриРоботи) Експорт // Початок: Базова бібліотека МодульБазовоїБібліотеки.НалаштуванняІнтерфейсу(Знач ПараметриРоботи); // Кінець: Базова бібліотека // Початок: Бібліотека другого рівня МодульБібліотекиДругогоРівня.НалаштуванняІнтерфейсу(Знач ПараметриРоботи); // Кінець: Бібліотека другого рівня КінецьПроцедури і т. д. 3. Таким чином, у кінцевій конфігурації-споживачі реалізація перевизначуваного модуля має вигляд: Процедура НалаштуванняІнтерфейсу(Знач ПараметриРоботи) Експорт // Початок: Базова бібліотека МодульБазовоїБібліотеки.НалаштуванняІнтерфейсу(Знач ПараметриРоботи); // Кінець: Базова бібліотека // Початок: Бібліотека другого рівня МодульБібліотекиДругогоРівня.НалаштуванняІнтерфейсу(Знач ПараметриРоботи); // Кінець: Бібліотека другого рівня // а тепер виконуємо налаштування так, як це потрібно нашій конфігурації // ... КінецьПроцедури Такий підхід дає змогу
|