русский
Germany.ruForen → Архив Досок→ Programmierung

Пустой виртуальный метод вместо интерфейса

09.10.24 11:52
Re: Пустой виртуальный метод вместо интерфейса
 
Программист коренной житель
in Antwort alex445 09.10.24 10:02, Zuletzt geändert 09.10.24 11:55 (Программист)
Защищённые и приватные ограничители создают ограничения в пределах одной иерархии классов. Но тогда интерфейсы использовать нельзя, т.к. они могут действовать на разные иерархии.

Я же просил тебя сформулировать задачу понятнее :) Из этого текста я так и не понял чего ты хочешь добиться.


Остаются лишь абстрактные классы, как возможность ЗАСТАВИТЬ имплементировать или перегрузить какой-то метод. А с таким ограничением возникают проблемы с моками для тестов.

Я не знаю какие проблемы у тебя там возникают :) Подозреваю, что ты разрядил полную обойму себе в колено :)


Вот я и говорю - ограничения и проблемы. В интерфейсе можно заменить всё.

Нет там никаких ограничений и проблем. Если говорить в терминологии C++, то интерфейс - это pure abstract class, т.е. интерфейс - это синтаксический сахар. По сути интерфейс - это абстрактный класс, у которого все методы и проперти - абстрактны :)


Надо просто понимать, как работают mock-фреймворки. Они не делают ничего большего, чем просто создают новый класс-наследник от указанного класса и перегружают все виртуальные функции. Никакой магии там нет :)

 

Sprung zu