QUESTION 53
A company has a business application that provides its users with many different reports: receivables reports, payables reports, revenue projects, and so on. The company has just purchased some new, state-of-the-art, wireless printers, and a programmer has been assigned the task of enhancing all of the reports to use not only the company's old printers, but the new wireless printers as well. When the programmer starts looking into the application, the programmer discovers that because of the design of the application, it is necessary to make changes to each report to support the new printers.Which two design concepts most likely explain this situation? (Choose two.)
A. Inheritance
B. Low cohesion
C. Tight coupling
D. High cohesion
E. Loose coupling
F. Object immutability
Solution : BC
Plus imformation :
Coupling : 클래스가 다른 클래스에 대해 알고있는 정도를 나타냅니다.
2가지 Coupling :
1.Tight Coupling ( 나쁜 프로그래밍 디자인 )
2.loose Coupling ( 좋은 프로그래밍 설계 ) : 적절한 캡슐화 , 개인 엑세스 가있는 클래스의 데이터 멤버를 선언 하고 다른 클래스가 공용getter,setter메소드를 통해서만 엑세스하도록 강제하는 등 느슨하게 결합 된 클래스로 애플리케이션을 작성하는 것
Cohesion : 특정 특수 작업을 수행하기 위해 클래스가 정의되는 정도를 나타냅니다. 높은 응집도를 가지고 생성 된 클래스는 많은 다른 특정 목적을 수행하는 것이 아니라 단일 목적을 목표로 한다.
2가지 Cohesion :
1.low Cohesion ( 나쁜 프로그래밍 디자인 ) : 하나의 클래스가 하나의 전문 작업에 초점 < 다양한 작업을 수행하도록 설계된 경우
--> 유지관리 + 업데이트 어려움이 있다
2.high Cohesion ( 좋은 프로그래밍 디자인 ) : 특정 전문 작업을 목표로하는 응집력이 높은 클래스로 애플리케이션을 작성하는 것
--> 작성하기 쉽고 유지 보수 + 업데이트가 쉽다
출처 : https://www.decodejava.com/coupling-cohesion-java.htm
'자격증 > OCJP_ExamA' 카테고리의 다른 글
QUESTION 55 (0) | 2018.07.08 |
---|---|
QUESTION 54 (0) | 2018.07.08 |
QUESTION 52 (0) | 2018.07.08 |
QUESTION 51 (0) | 2018.07.08 |
QUESTION 50 (0) | 2018.07.08 |
#IT #먹방 #전자기기 #일상
#개발 #일상