내가 몇 가지 코드와의 desgin 문제의 비트에 실행 한을 작업 한 것을이 같은내부 글로벌 속성 .. 나쁜 냄새? 나는
내 코드 기본적인 외모 :
홈페이지 COM 래퍼 :
public class MapinfoWrapper
{
public MapinfoWrapper()
{
Publics.InternalMapinfo = new MapinfoWrapper();
}
public void Do(string cmd)
{
//Call COM do command
}
public string Eval(string cmd)
{
//Return value from COM eval command
}
}
래퍼에 대한 내부 참조를 유지하는 public static 클래스 :
internal static class Publics
{
private static MapinfoWrapper _internalwrapper;
internal static MapinfoWrapper InternalMapinfo
{
get
{
return _internalwrapper;
}
set
{
_internalwrapper = value;
}
}
}
내부 래퍼 인스턴스를 사용하여
코드 :
public class TableInfo
{
public string Name {
get { return Publics.InternalMapinfo.Eval("String comman to get the name"); }
set { Publics.InternalMapinfo.Do("String command to set the name"); }
}
}
이 사람에게 나쁜이 냄새를합니까? 기본 래퍼 객체에 대한 참조를 보유하기 위해 내부 속성을 사용해야합니까? 아니면 다른 디자인을 사용해야합니까?
참고 : MapinfoWrapper 객체는 외부 세계에서 사용되므로 실제로 싱글 톤을 만들고 싶지는 않습니다.
멋지다. 시작하는 방법은 그렇게 할 예정 이었지만 어쩌면 잘못이라고 생각했지만 지금은 테스트로 구현되어 힙을 더 잘 이해할 수 있습니다. 그걸 건배! –
내가 가진 유일한 문제는 사용자 관점에서 잘 읽히지 않는다는 것입니다. 나는 이것을 좋아하지 않는다. TableInfo tab = 새로운 TableInfo (Nothing); –
내 마지막 코멘트에 신경 쓰지 마라, 나는 코드를 읽는다. :( –