Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Підходи до розширення класів

Класи, описані у додатку В-1, є прикладом реалізації логіки поведінки об’єктів без прив’язки до конкретної графічної бібліотеки. При потребі включити цю логіку у графічний редактор виникає проблема прив’язки до процедур графічної бібліотеки. Цю проблему можна вирішити просто шляхом довизначення недостаючих методів по всій існуючій ієрархії наслідування, що, однак робить логіку залежною від конкретних інструментальних засобів та часто не є прийнятним. Втім, в рамках даної роботи таке вирішення проблеми може бути допустимим.

 

Якщо поставити за мету зберегти незалежність розроблених класів від інструментарію, то одним з можливих варіантів є наслідування за схемою, показаною на рисунку.

 

 

Головна ідея наступна: створюється альтернативний базовий клас для фігур QtShape, що вміють прорисовувати себе самих засобами конкретної бібліотеки, шляхом наслідування базового класа абстрактних фігур Shape. Тоді конкретні фігури мають наслідуватись як від абстрактних фігур, так і від нового базового класу. Має місце множинне наслідування ромбовидного типу. Слід зазначити, що для кінцевих конкретних класів фігур слід визначити усі віртуальні методи, за потреби просто перенаправляючи виклики до відповідних методів базових класів. Без цього звернення до методів «на протилежній вершині ромба» є проблемним. Слід також зазначити, що даний прийом діє і для мов, які не підтримують множинне наслідування: наслідування частково замінюється композицією. Іншим виходом може бути застосування деяких патернів проектування, таких як Visitor. Код-доповнення класів графічних примітивів для випадку Qt наведено в додатку В-2.

 




Переглядів: 414

<== попередня сторінка | наступна сторінка ==>
Перехід до виконання роботи | Розробка інтерфейсу користувача

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.003 сек.