Вход на сайт
Пустой виртуальный метод вместо интерфейса
1779 просмотров
Перейти к просмотру всей ветки
в ответ Программист 09.10.24 09:14
но если я хочу ограничить действия некоторых из них в пределах одной иерархии классов?Сформулируй проблему поточнее.
Защищённые и приватные ограничители создают ограничения в пределах одной иерархии классов. Но тогда интерфейсы использовать нельзя, т.к. они могут действовать на разные иерархии. Остаются лишь абстрактные классы, как возможность ЗАСТАВИТЬ имплементировать или перегрузить какой-то метод. А с таким ограничением возникают проблемы с моками для тестов.
Для мок-объекта подойдет все, где можно (нужно) перегружать фукнкции или проперти. Т.е. абстрактые и проперти также можно использовать в мок-объектах.
...
DoSomethingElse и Sleep ты сможешь заменить, а вот с DoSomething ты ничего не сделаешь.
Вот я и говорю - ограничения и проблемы. В интерфейсе можно заменить всё.
Перейти на |