티스토리 뷰

Java

객체지향

sayho 2022. 3. 20. 15:53
객체지향

  객체들이 메세지를 주고받는 협력 과정을 통해 소프트웨어를 완성시키는 과정을 객체지향이라고 한다. 

  객체에게 적절한 책임을 할당해야한다. 

객체지향의 특징

 

  • 여러 객체가 동일한 역할을 수행할 수 있다
  • 역할은 대체 가능성을 의미한다
  • 객체는 책임을 수행하는 방법을 자유롭게 선택할 수 있다
  • 하나의 객체가 여러 역할을 수행할 수 있다
좋은 객체가 되는 조건

 

  • 객체는 협력적이어야 한다. 객체는 다른 객체의 요청에 충실히 귀를 기울이고 적극적으로 도움을 요청할 수 있어야 한다. 모든걸 처리하려고 하는 객체는 성능이 좋지 못하다.
  • 객체는 자율적이어야 한다. 객체는 자신의 원칙에 따라 업무를 수행하거나 통제해야 한다. 
객체의 구성요소

  객체는 구체적인 사물일 수도 있고 추상적인 개념일 수 있다.

 

  • 상태 : 객체의 상태를 통해 행동의 여부와 결과를 예측할 수 있다. 
  • 행동 : 객체의 상태를 변경시키는 요인이다.
  • 식별자 : 서로다른 객체를 구별하기 위한 것이다.
객체 상태를 먼저 결정하는 것의 단점

 

  1. 캡슐화 저해 : 객체 내부로 캡슐화하지 못하고 인터페이스에 객체의 상태가 노출될 수 있다.
  2. 협력이 아닌 고립된 객체 : 하나의 객체 내에서 모든 것을 해결하려고 하면 속도가 느려지고 협력을 할 수 없다.
  3. 객체의 재사용성 저해
추상화

  어떤 세부 사항, 구조를 명확하게 이해하기 위해 절차나 물체를 의도적으로 생략하거나 감추어 복잡도를 극복하는

  방법을 추상화라고 한다. 

  - 구체적인 사물들 간의 공통점을 취합하고 차이점은 버려 일반화를 통해 단순화한다. 

  - 중요한 부분을 강조하기 위해 불필요한 부분은 버리고 단순화한다.

추상화가 필요한 이유

  여러가지 객체가 존재하지만 하나하나 기억하기에는 어려움이 있다. 공 통된 특징을 가진 객체들을 단순화하는

  것을 추상화라고 한다.

'Java' 카테고리의 다른 글

[Java] 컬렉션 프레임워크  (0) 2022.03.13
[Java] 람다식 (2)  (0) 2022.03.12
[Java] 람다식 (1)  (0) 2022.03.10
[Java] Iterator와 ListIterator  (0) 2022.02.05
[Java] Collection 과 List  (0) 2022.02.05
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함