2013-05-01 1 views
0

MATH 클래스를 만들고 두 개의 숫자를 처리하는 메서드를 제공해야한다고 가정 해 봅시다. [모 놀리 식 메서드 - 단점

각 가능한 조작에 대해 메소드가있는 전통적인 메커니즘을 제공하는 대신 하나의 메소드 eval : float eval(ArgObj);을 제공합니다. 여기서 ArgObj은 두 개의 숫자와 연산자를 보유 할 수있는 오브젝트입니다. 따라서 이제는 단일 메서드로 여러 작업을 수행 할 수 있습니다.

이 디자인의 단점은 무엇입니까?

eval이 더 많은 작업을 처리 할 수있게되면서 유지 보수 및 문서화가 두 가지 단점이 있습니다.

내가 여기에서 놓치고있는 다른 단점은 무엇입니까?

업데이트 : 위의 예는 단지 가상 내가 알아낼 큰 모 놀리 식 방법의 네거티브 있습니다 것을 시도하고있다 다른 유사한 예로들 수

float doSomething(int basedOn)

같은 방법 해봐요은 할 수있는 작업 무리.

+0

* ArgObj * 실제로 무엇이 주조하고 식별하는 것은 확실히 큰 문제가 될 것입니다. 과부하는 어떨까요? –

+0

@PiotrJustyna True, 그냥 질문을 업데이 트, 첫 번째 예제와 함께 귀하의 요점은 매우 유효합니다. –

답변

1

읽기 코드는 방법이 뻔뻔스럽게 분명해야하는 것을 알고 즐거운 경험이되어야합니다.

영어를 10 단어로 줄이시겠습니까? 물론 그렇지 않습니다 ...

잘 쓰이고 잘 사랑하는 API를 배우고 API를 배우기 쉽고 사용하기 쉬우 며 오용하기 어렵도록 만드십시오.

나는 doSomething이 가까이 오지 않는다고 제안합니다. 다른 작업이 필요할 때 어떻게됩니까? doSomething2 새 메서드를 호출합니까? 잘하면, 당신은 실행 가능한 옵션으로 볼 수 없습니다 ...

+1

바보 같이 굴지 마라. 분명히 새로운 메소드는'doSomethingElse'라고해야합니다. – jmbpiano

+0

심지어 dse? :) –