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

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

kkikkodev 2015. 8. 1. 00:48



관련 이론 및 문법

(결합도 (coupling) 참고)

http://kkikkodev.tistory.com/133


(응집도 (cohesion) 참고)

http://kkikkodev.tistory.com/134


문제 의도

한 회사는 많은 다양한 보고서를 사용자들에게 제공해주는 프로그램을 가지고 있습니다. (채권 보고서, 채무 보고서, 수익 보고서 등) 이 회사는 최신식의 새로운 무선 프린터기를 구매했고, 한 프로그래머는 모든 보고서들을 이전 프린터뿐만 아니라, 신식 무선 프린터에서도 사용될 수 있도록 개선시키는 업무를 할당받았습니다. 이 프로그래머는 프로그램을 조사하여, 프로그램의 설계로 인해서, 새 프린터기를 지원할수 있도록 각각의 보고서들에 변경이 필요하다는 것을 알게 되었습니다. 이와 같은 상황에서 설명될 수 있는 설계의 2 가지 원칙을 고르는 문제입니다.


답안

B, C


풀이 방법

새로운 환경에 대한 적응성 및 유지보수성을 올리기 위해서는, 결합도를 낮추고, 응집도를 높여야 합니다. 


먼저, 보기 F 인 Object immutability 는 객체 불변성에 관한 내용이기 때문에 문제 내용과 상관없으므로 답안 후보에서 제외합니다.


개인적인 생각으로는, 보기 A 인 상속은 어느 정도 답안이라고는 볼 수 있습니다. (보고서 종류가 많은데, 이를 부모 부고서 클래스로 묶어서 나머지 각각의 자식 보고서들은 부모 보고서를 상속하는 방식으로 하면, 설계를 보다 나은 방향으로 진행할 수 있을 것으로 보여집니다.)


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


원래, 좋은 설계 원칙인, 낮은 결합도, 높은 응집도를 골라야 하는데, 이 문제에서 원하는 것은, 좋은 설계 원칙이 아닌, 현재 문제 상황을 나타내는 것을 물어보는 것으로 예상됩니다. 따라서, 반대인, 낮은 응집도인 B 와 높은 결합도인 C 가 답안이 됩니다.