2012-02-27 3 views
0


이상적인 방법, 내 사용 주어진 경우

이 다시이며, 내 생각, 내 유스 케이스 구현지고 일부 우아 방법을 생각할 수 있기 때문에 '모범 사례'질문입니다.

사용 사례는 다음과 같습니다.
UI를 통해 실제 메서드 (함수) 호출을 처리하는 최종 사용자에게 도움이되는 MethodManager (정렬) 모듈을 작성합니다.
이 특정 목적을 위해 나는 method (function)가 내 시스템에 어떻게 보이는지에 대한 객체 형식 인 methodDefinition 클래스를가집니다. methodResult 변수이며,로 설정되어 무엇 methodResultType에 따라 문자열,지도 또는 목록 중 하나가 될 수 있습니다 지금

methodName -- String 
methodInputs -- ArrayList<String> 
methodResultType -- enum(STRING,MAP,LIST) 
methodResult -- <<variable, on the basis of methodResultType>> 

을 다음과 같이
내 methodDefinition의 구성원이 어떻게 생겼는지에 대한 간략한 개요입니다.

나는 methodResultType을 설명하기 위해 MethodResultType 클래스를 만들었으며 지금은 내가 methodResultType에 따라 methodResult과 변수 특성을 고려하여 클래스를 작성해야하지만, 생각 어차피 알고

public enum MethodResultType { 
    LIST, 
    MAP, 
    STRING; 
    } 

를 다음과 같이 보입니다 엉망이 아닌 방법으로

이 점에 대한 제안이나 조언은 크게 감사하겠습니다.

감사

답변

2

목록을 p1ng
은지도 문자열 공통 조상 클래스가 있습니다 : java.lang.Object. 따라서 methodResult은 Object가 될 수 있습니다.

는 또한 결과 및 방법 등 getType(), getValueAsString(), getValueAsList()getValueAsMap()를 제공 할 것 MethodResult 객체로 그 유형을 포장 할 수있다. 이 마지막 3 개의 메소드는, 값의 형태가 메소드가 돌려주는 형태가 아닌 경우, IllegalStateException를 Throw합니다.

+0

감사합니다. @JB Nizet. 이것은 의미가 있습니다. 이 대답을 대답으로 받아들입니다. – ping

관련 문제