어댑터 클래스에 대해 조금 의심의 여지가 있습니다. 나는 어댑터 클래스의 목표가 무엇인지 압니다. 그리고 언제 사용해야합니다. 나의 의심은 계급 건설에 관한 것이다. 나는 몇몇 자습서를 확인했고 그들 모두는 "Adaptee"클래스를 내 "Adapter"에 대한 의존성으로 전달해야한다고 말한다. 예 :어댑터 패턴 및 종속성
Class SampleAdapter implements MyInterface
{
private AdapteeClass mInstance;
public SampleAdapter(AdapteeClass instance)
{
mInstance=instance;
}
}
이 예제는 위키 백과에서 복사됩니다. 보시다시피 AdapteeClass가 종속 객체로 객체에 전달됩니다. 그 이유는 무엇입니까? 객체의 인터페이스를 변경하는 경우 "새로운"인터페이스를 사용할 것이 분명하며 "오래된"인터페이스는 필요하지 않습니다. 왜 어댑터 외부에 "old"클래스의 인스턴스를 만들어야합니까? 누군가 내가 의존성 삽입을 사용해야 만 원하는대로 전달할 수 있다고 말할 수도 있지만, 이것은 어댑터입니다. 구체적인 클래스의 인터페이스를 변경해야합니다. 개인적으로 나는 코드 울부 짖음이 더 좋다고 생각한다.
Class SampleAdapter implements MyInterface
{
private AdapteeClass mInstance;
public SampleAdapter()
{
mInstance= new AdapteeClass();
}
}
귀하의 의견은 무엇입니까?
당신이 장식을 찾고 있다고 생각합니다. – dotnetstep
@dotnetstep 아니요, 그가 말한 어댑터 패턴은 데코레이터와 다릅니다. Decorator는 인터페이스를 동일하게 유지하지만 동작을 확장합니다. 어댑터가 예상 인터페이스와 일치하도록 기존 클래스의 인터페이스를 재검토합니다. 자세한 정보는 http://stackoverflow.com/questions/350404/how-do-the-proxy-decorator-adaptor-and-bridge-patterns-differ를 확인하십시오. –