Re: как расширить функционал класса
От: Stanislav V. Zudin Россия  
Дата: 20.07.20 14:55
Оценка: 4 (1) +1
Здравствуйте, sergey2b, Вы писали:

S>есть класс, графическое окно с пару десятком методов для вывода графики


S>оно работает только под виндой а мне надо добавить саппорт linux (код уже есть)

S>вомногих приложениях и классах есть поинтер на этот класс
S>как можно добавить новый функционал, что бы не менять исходный код прилжений и классов использующих класс окна сейчас

S>пока вижу варианты


S>детский #ifdef (но яуже понял что реализовать просто не удастся)

Для небольших классов годится.

S>изменить существующий класс, фабрика возрашает поинтер на нужный класс и методы используют его


Можно и так.

Еще есть pimpl.
Системозависимая функциональность выносится в отдельный класс и отдельный файл.


Upd. Подумай еще. Может удастся обойтись просто парой реализаций твоего класса — одна для винды, другая — для линюха.
Интерфейс должен быть идентичным.
В зависимости от ОС цепляется либо одна реализация, либо другая — это уже управляется на уровне makefile (подставить своё).
_____________________
С уважением,
Stanislav V. Zudin
Отредактировано 20.07.2020 15:00 Stanislav V. Zudin . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.