Класс статического помощника против статического метода на класс инстанции против метода расширения

Я ищу лучший практический подход к следующей проблеме.

Я бы хотел, чтобы мнение людей о том, какой метод (какие методы) они бы использовали и почему, привело меня к следующему сценарию:

У меня есть Класс , который инстанцируется фабрикой, когда указана Дата Времени.

Какой подход мне следует использовать?

статический "вспомогательный" класс : Класс c = ClassHelper.GetClass(DateTime);
статический метод на типе экземпляра : Class c = Class.GetClass(DateTime);
static extension class/method : Class c = DateTime.GetClass();

В настоящее время я больше склоняюсь к статическому классу-хелперу, так как никогда раньше не пользовался статическими заводскими методами на классе экземпляра, но мне кажется, что имеет смысл делать это со статическим методом на классе?

Есть ли какие-то соображения, которые я должен учитывать при юнит-тестировании или организации тестов?

На данный момент я избавился от методов-расширений, так как прочитал, что методы-расширения следует использовать экономно, обычно, если у вас нет доступа к источнику, который вы расширяете?

Твое здоровье,

Джеймс

5
задан Zack 5 September 2011 в 22:19
поделиться