Во-первых, я понимаю причины, по которым интерфейс или абстрактный класс (в терминологии .NET/C#) не могут иметь абстрактные статические методы. Мой вопрос тогда больше сфокусирован на лучшем дизайнерском решении.Статические методы в интерфейсе/абстрактном классе
Что я хочу - это набор «вспомогательных» классов, для которых все имеют свои собственные статические методы, так что если я получаю объекты A, B и C от стороннего поставщика, у меня могут быть вспомогательные классы с такими методами, как
AHelper.RetrieveByID(string id); AHelper.RetrieveByName(string name); AHelper.DumpToDatabase();
Поскольку мои классы AHelper, BHelper и CHelper будут в основном иметь одни и те же методы, кажется, имеет смысл перемещать эти методы в интерфейс, из которого эти классы берутся. Однако, если эти методы являются статическими, это не позволяет мне получить общий интерфейс или абстрактный класс для всех из них.
Я всегда мог сделать эти методы не статическую, а затем создавать экземпляры объектов, таких как первые
AHelper a = new AHelper(); a.DumpToDatabase();
Однако этот код не кажется, как интуитивно мне. Каковы ваши предложения? Должен ли я отказаться от использования интерфейса или абстрактного класса в целом (ситуация, в которой я сейчас сейчас), или это может быть реорганизовано для выполнения проекта, который я ищу?
IMHO: Первый вариант был бы лучше, чем общий, поэтому можно использовать вывод типа, который еще лучше. – 2011-07-14 10:08:09