запилил очередной проект и после уже понял, что меня как-то подворачивает от того что у меня огромное количество типов написано в виде SomeInterface<SomeType>. собственно, все как бы и не сказать что плохо, но очевидно, что это несколько снижает уровень абстракции везде по коду. собственно, вопрос: а может это хорошая практика дописывать новые типы, чтобы избежать через чур большего количества использования дженериков? может есть какое-то золотое правило? я собственно понимаю, что дженерики как раз для того, чтобы типы не росли кобминаторно, но мы же все-таки пишем конкретные типы. на ум приходит правило что-то типа: во-первых, если не нужен дженерик именно из-за переменной типа, и мы пишем SomeInterface<SomeType> как миниму дважды, то есть смысл заколбасить SomeTypeSomeInterface. во-вторых, если SomeInterface<SomeType> имеет взаимнооднозначное соответсвествиее с каким-то конкретным SomeTypeSomeInterface, то от дженирика лучше избавиться.
в общем, буду рад услышать ваше мнение.