Свободные интерфейсы - количество создаваемых объектов

Я нахожусь в процессе создания некоторых свободных интерфейсов для некоторых простых вещей проверки, с которыми я играю. Одна вещь, которую я заметил, состоит в том, что у меня есть много разных создаваемых объектов.

Например, учитывая следующие утверждения:

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);
    }
}
Другие вопросы по тегам