Мне нужно создать трейт для моего класса исключительно для внедрения зависимостей для моих модульных тестов. Я действительно не предвижу каких-либо других реализаций этого трейта — просто нужно заглушить его для модульных тестов. Скажем, мой класс называется "Foo"... в .NET я бы назвал свой интерфейс "IFoo". Какое соглашение люди используют для этого случая?
Соглашение об именах трейтов Scala, когда трейт совпадает с классом
Ответы (2)
Когда существует только одна реализация трейта, имеет смысл использовать соглашение «Impl»: trait = Foo и class = FooImpl. Хотя я никогда не был поклонником этого соглашения, потому что оно как бы ограничивает одну реализацию, похоже, это именно то, что мне здесь нужно.
Чем больше классов реализуют интерфейс/признак, тем более вероятно, что именование каждой реализации будет проходить более естественно.
person
Donuts
schedule
14.06.2013
В шаблоне активатора для akka-spray используется схема инъекции «сделай сам». Они называют один из его основных интерфейсов Core, а его реализацию RunCore. Кажется, они предлагают придумать описательное имя для реализации в зависимости от ее предполагаемого использования, а не просто impl. После этого вы назовете свой макет TestCore.
person
Bijou Trouvaille
schedule
02.02.2015