필자는 제공자의 기능을 시스템의 위 서비스 계층에 노출시키는 클래스를 가지고 있습니다. GetX()와 같은 공용 메소드가 있습니다. 자, X를 얻는 두 가지 방법이 있습니다 : XML 방식과 비 XML 방식. 두 개의 "라이브러리"클래스는 각각에 대해 하나씩이 두 가지 방법을 구현합니다. 다음과 같이 따라서, 발생하는 구조는 무언가이다 : 그래서"Dumb"래퍼 클래스
public class Provider
{
private XmlLib _xmlLib;
private NonXmlLib _nonXmlLib;
public X GetX(// parameters)
{
// validate the parameters
if (// some condition)
X = _xmlLib.GetX();
else
X = _nonXmlLib.GetX();
return X;
}
// several other such methods
}
internal class XmlLib
{
public X GetX()
{
// Xml way to get X.
}
// several such things to get/send in XML way.
}
internal class NonXmlLib
{
public X GetX()
{
// NonXml way to get X.
}
// several such methods to get/send thing in non-XML way.
}
그 같은 Provider 클래스 만 인수의 유효성을 검사 한 조건에 따라 바보 래퍼, 일종의되고있는 lib 디렉토리를 결정 요구. 좋은 구현입니까? 이것을 구현하는 더 좋은 방법은 무엇입니까?