값이 before
, after
또는 none
인 클래스가 enum DoStuff
입니다. 이 이름들은 실제 이름이 아니지만 그 의미를 알 수 있습니다. 클래스는 메소드 foo
을 가지고 있습니다.이 코드를 작성하는 더 좋은 방법이 있습니까?
public [type] MyProperty {
get {
if(enumValue == DoStuff.Before)
foo();
[type] result = //Do calculations here
if(enumValue == DoStuff.After)
foo();
return result;
}
}
이러한 전/후 계산 부른다 추출하는 방법이 있나요 : 다음 무엇
다음과 같이 각각의 모양, 다른 유형의 읽기 전용 속성의 집합입니다? 나는 현재이 개 솔루션을 생각할 수 있습니다 :
가 대리자를 취하고, 적절한 장소에
foo
를 호출하는 개인 방법을 만듭니다. 이 글을 쓰고있는 플랫폼에 제네릭이 없기 때문에 복잡합니다.- 는 어느 래퍼 호출과 uninstantiable 기본 클래스를 확인하고 잘 알려진 패턴이있는 전에 적절한 장소
의 호출로, 기본 클래스의 속성에 액세스 서브 클래스 후 도출 이런 종류의 구조?
스타일에 대한 일반적인 의견으로 초기화를 제외하고 속성 게터 내에서 상태를 변경하지 않는 것이 좋습니다. – Reddog
무한 재귀! –
@Dan Tao : 죄송합니다. 내 잘못이야. – Eric