파서를 만들고 있다고 가정 해 봅시다. 한 가지 구현은 다음과 같습니다.
public sealed class Parser1
{
public string Parse(string text)
{
...
}
}
또는 대신 텍스트를 생성자에 전달할 수 있습니다.
public sealed class Parser2
{
public Parser2(string text)
{
this.text = text;
}
public string Parse()
{
...
}
}
두 경우 모두 사용법이 간단하지만 다른 것에 비해 매개 변수 입력을 활성화 한다는 것은 무엇을 의미Parser1
합니까? API를 볼 때 동료 프로그래머에게 어떤 메시지를 보냈습니까? 또한 특정 경우 기술적 장점 / 단점이 있습니까?
두 번째 구현에서 인터페이스가 의미가 없다는 것을 알게되면 또 다른 질문이 나타납니다.
public interface IParser
{
string Parse();
}
... 첫 번째 인터페이스가 적어도 어떤 목적으로 사용될 수있는 곳. 이것은 클래스가 "인터페이스 가능"인지 아닌지를 의미합니까?