Свободные интерфейсы - количество создаваемых объектов
Я нахожусь в процессе создания некоторых свободных интерфейсов для некоторых простых вещей проверки, с которыми я играю. Одна вещь, которую я заметил, состоит в том, что у меня есть много разных создаваемых объектов.
Например, учитывая следующие утверждения:
Check.Assertion.ForValue.That(value, "value").IsNotNull() : void
Check.Assertion.ForArgument.That(value, "value").IsNotNull() : void
Validate.Assertion.ForDate.That("Test").IsNotNull() : bool
Validate.Assertion.ForNumeric.That("Test").IsNotNull() : bool
для каждого '.' (принять за последний) Я обновляю объект. Если бы я не использовал свободный интерфейс здесь, я бы просто использовал статические методы.
Что меня интересует, так это если кто-нибудь знает, где можно заметить какую-либо реальную разницу в производительности при использовании этого количества объектов экземпляра (обратите внимание, что они довольно маленькие объекты), в отличие от работы со статическими методами.
Ура Энтони
1 ответ
Обратите внимание, что вам не обязательно создавать новые объекты повсюду. Вы можете просто решить большую часть свободного интерфейса через интерфейсы и просто реализовать множество интерфейсов для одного объекта. В этом случае вы можете просто вернуться this
просто через новый интерфейс.
Пример:
public interface ICheckAssertionForValue
{
ICheckAssertionForValueThat That(Object value, String name);
}
public interface ICheckAssertion
{
ICheckAssertionForValue ForValue { get; }
}
public class Check : ICheckAssertion
{
public static ICheckAssertion Assertion
{
get { return new Check(); }
}
ICheckAssertionForValue ICheckAssertion.ForValue
{
get { return this; } // <-- no new object here
}
ICheckAssertionForValueThat ICheckAssertionForValue.That(Object value, String name)
{
return new SomeOtherObject(value, name);
}
}