유창한 인터페이스 - 생성중인 객체 수
-
12-09-2019 - |
문제
나는 내가 놀고있는 간단한 검증 내용을 위해 유창한 인터페이스를 만들고 있습니다. 내가 알아 차린 한 가지는 다른 객체가 생성되고 있다는 것입니다.
예를 들어 아래 진술이 주어지면 :
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
모든 '.' (마지막으로 수락) 나는 물건을 새롭게하고있다. 유창한 인터페이스를 사용하지 않았다면 정적 메소드를 사용했을 것입니다.
내가 궁금해하는 것은이 인스턴스 객체를 사용할 때 성능의 실제 차이를 어디에서 알 수 있는지 알고 있다면 정적 메소드를 사용하는 데있어서 appose 로서이 인스턴스 객체 (매우 작은 객체 임).
Anthony를 건배합니다
해결책
반드시 모든 곳에서 새로운 물체를 구성 할 필요는 없습니다. 인터페이스를 통해 유창한 인터페이스의 대부분을 해결하고 하나의 객체에서 많은 인터페이스를 구현할 수 있습니다. 이 경우 돌아올 수 있습니다 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);
}
}
제휴하지 않습니다 StackOverflow