Я столкнулся с вопросом, является ли хорошей идеей создание открытых методов / свойств внутри класса
public class MyClass : IMyClass
но не в интерфейсе
public interface IMyClass
в основном для целей модульного тестирования реализованы методы из IMyClass
внутри MyClass
. Я хочу получить доступ из своих модульных тестов к деталям реализации внутри класса MyClass
, чтобы проверить, соответствуют ли некоторые поля ожиданиям. Кроме того, я не хочу раскрывать эти детали через мой интерфейс.
С другой стороны, у меня есть ощущение, что все общедоступное внутри MyClass
должно быть открыто в интерфейсе IMyClass
, так как это случай модификаторов доступа:
public
чтобы раскрыть информацию, private
чтобы скрыть детали.
Итак, мой вопрос: хорошо ли создавать открытые методы / свойства внутри класса MyClass
, но не в интерфейсе IMyClass
?