2010-12-15 2 views
2

일반적으로 레거시 코드를 테스트 할 수 있도록하기 위해 완료되었습니다. 예를 들어,정적 메서드를 호출하기 위해 인스턴스를 만드는 패턴의 이름

int importantNumber = DataAccess.LoadValue(); 

같은 정적 호출의 부하가있을 수 있습니다 나는

public int LoadValue(){ 
    return DataAccess.LoadValue(); 
} 

그리고 내가 할 수있는 것처럼, 인터페이스 뒤에 통상이 전화를 인스턴스화 할 수있는 클래스를 생성 DI 또는 무엇이든 사용하고 원래 전화로 바꾸기

int importantNumber = _dataAccessInstance.LoadValue(); 

이 패턴의 이름이 있습니까? 나는 'Adapter'를 생각하고 있었지만, 그것보다는 더 구체적으로 보인다.

+0

와 다른 개체에 대한 대리 역할을

추가 기능을 추가하지 않습니다. –

+0

아니면 외관일까요? –

+0

객체 지향 래퍼라고 부릅니다. 어쨌든, 이름은 무엇입니까? : P –

답변

3

프록시.

프록시, 어댑터 또는 데코레이터와 같은 래퍼처럼 보입니다. 장식가는 당신이 어떤 가치도 추가하지 않을 때 실제로 적합하지 않습니다; 한 인터페이스에서 다른 인터페이스로 매핑하는 경우 어댑터가 적합합니다. 제 생각에는 프록시가 대답이라고 생각합니다. 툴킷에 대한 액세스를 중재하는 데 사용하고 있습니다.

매우 큰 코드 라이브러리에서 도구의 하위 집합에 대한 액세스를 단순화하려는 경우 외관이 될 수 있습니다.

+0

의미가 있습니다. 나는 특정 래퍼 패턴 중 하나 대신 클래스 'xxxWrapper'를 실제로 명명 할 수 있습니다 - 올바른 절충과 '프록시'보다 혼동이 덜한 것처럼 보입니다. (정확한 패턴 이름 인 경우에도) 생각합니다. 어쩌면 누군가 새로운 이름을 생각해 내야 할 것입니다! –

+0

프록시는 항상 수하물과 함께 오는 것 같이 나는 래퍼라는 이름으로 놀아 다니는 경향이있다. :) –

3

프록시입니다.

어댑터는 다른 clases

외관과 함께 사용하기 쉽도록하기 위해 클래스의 인터페이스를 변경 여러 개체보다 쉽게 ​​인터페이스와 상호 작용 할 수있는 단일 인터페이스의 창조이다. 추상화 수준을 변경합니다.

는 데코레이터는 인터페이스를 변경하지만 프록시 내가 '어댑터'뿐만 아니라 생각했던 것과 동일한 인터페이스와 같은 최종 기능

+0

몇 가지 좋은 요약은 매우 유용하다. –

관련 문제