Ситуация такова.Как назвать коллекцию интерфейса?
public interface IFoo { }
public abstract class FooBase : IFoo { }
Теперь мне нужна коллекция IFoo
с некоторыми дополнительными методами.
public class IFooCollection : List<IFoo>
{
public void UsefullMethod() { }
}
Проблема заключается в том, что IFooCollection
выглядит как интерфейс, а это класс. Возможны следующие варианты.
- Keep it
IFooCollection
- Мне не нравится это, потому что это похоже на интерфейс. - Назовите его
FooCollection
- Мне это не нравится, потому что это не коллекция foos. - Включите его в
FooBaseCollection
, потому что все реализацииIFoo
происходят отFooBase
- Мне это не нравится, потому что это может быть неверно навсегда. - Не создавайте класс вообще, но предоставляйте методы расширения для
IList<IFoo>
, потому что есть только полные методы руки - мне это не нравится, потому что изменение кода, потому что вы не можете найти имя для класса ... да, это противно. - Что-то я не думал и не забыл записать его - надеюсь, мне понравится!
Итак, что бы вы сделали? Есть ли соглашение об именовании, которое я пропустил? Мы в основном используем это Microsoft .NET Library Standards.
UPDATE
Код не будет широко распространен - это только внутри GUI инструмент, чтобы положить некоторые данные на сервер. Поэтому мне не нужно использовать методы с другими коллекциями или игнорировать методы.