4.1) OCJP/1Z0-851 / 2012-08-28

OCJP (1Z0-851 / 2012-08-28 / Exam A) - 20 번

kkikkodev 2015. 7. 13. 23:31



관련 이론 및 문법

(결합도 (coupling) 참고)

http://kkikkodev.tistory.com/133


(응집도 (cohesion) 참고)

http://kkikkodev.tistory.com/134


문제 의도

프로그래머들이 새로운 유틸리티 클래스에 관한 API 를 검토하고 있습니다. 

얼마간의 토론 후에, 그들은 어떤 기능의 손실 없이도 API 내의 method 들의 수를 줄일 수 있다는 것을 깨달았습니다.

만약, 그들이 이 새로운 설계 방식에 대해서 구현하고자 한다면, 그들이 진행해야 하는 2 가지 원칙은 무엇인지 고르는 문제입니다.


답안

A, D


풀이 방법

주어진 문제에서, 프로그래머들이 개선하고자 하는 것은, 기능은 그대로 가면서, 내부 메소드들을 삭제하고자 하는 것입니다. 관련없는 혹은, 호출되지 않는 메소드 삭제를 통해서, 해당 클래스의 응집도는 더욱 올라가게 되고, 이와 더불어 클래스들간의 결합도는 더욱 낮아지게 됩니다.


개인적인 생각으로는, 캡슐화를 증가시키는 행위도 어느 정도 답안이라고는 볼 수 있습니다. (캡슐화를 증가시킨다는 것은 해당 클래스와 관련된 메소드와 변수로만 뭉치게 한다는 것이므로, 관련되지 않는 메소드 삭제 행위 또한, 캡슐화를 증가시킨다고 볼 수 있기 때문입니다.)


하지만, OCJP 덤프에서 주로 설계 원칙을 물어볼때는, 주로, 답안이 낮은 결합도, 높은 응집도가 되도록 문제를 내기 때문에, 이들을 답으로 고르면 될 것 같습니다. 따라서 답안은 A, D 입니다.