티스토리 뷰
객체지향
객체들이 메세지를 주고받는 협력 과정을 통해 소프트웨어를 완성시키는 과정을 객체지향이라고 한다.
객체에게 적절한 책임을 할당해야한다.
객체지향의 특징
- 여러 객체가 동일한 역할을 수행할 수 있다
- 역할은 대체 가능성을 의미한다
- 객체는 책임을 수행하는 방법을 자유롭게 선택할 수 있다
- 하나의 객체가 여러 역할을 수행할 수 있다
좋은 객체가 되는 조건
- 객체는 협력적이어야 한다. 객체는 다른 객체의 요청에 충실히 귀를 기울이고 적극적으로 도움을 요청할 수 있어야 한다. 모든걸 처리하려고 하는 객체는 성능이 좋지 못하다.
- 객체는 자율적이어야 한다. 객체는 자신의 원칙에 따라 업무를 수행하거나 통제해야 한다.
객체의 구성요소
객체는 구체적인 사물일 수도 있고 추상적인 개념일 수 있다.
- 상태 : 객체의 상태를 통해 행동의 여부와 결과를 예측할 수 있다.
- 행동 : 객체의 상태를 변경시키는 요인이다.
- 식별자 : 서로다른 객체를 구별하기 위한 것이다.
객체 상태를 먼저 결정하는 것의 단점
- 캡슐화 저해 : 객체 내부로 캡슐화하지 못하고 인터페이스에 객체의 상태가 노출될 수 있다.
- 협력이 아닌 고립된 객체 : 하나의 객체 내에서 모든 것을 해결하려고 하면 속도가 느려지고 협력을 할 수 없다.
- 객체의 재사용성 저해
추상화
어떤 세부 사항, 구조를 명확하게 이해하기 위해 절차나 물체를 의도적으로 생략하거나 감추어 복잡도를 극복하는
방법을 추상화라고 한다.
- 구체적인 사물들 간의 공통점을 취합하고 차이점은 버려 일반화를 통해 단순화한다.
- 중요한 부분을 강조하기 위해 불필요한 부분은 버리고 단순화한다.
추상화가 필요한 이유
여러가지 객체가 존재하지만 하나하나 기억하기에는 어려움이 있다. 공 통된 특징을 가진 객체들을 단순화하는
것을 추상화라고 한다.
'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
링크
TAG
- EC2
- 네이버클라우드
- ORA-27125
- nginx
- 인덱스
- SpringSecurity
- db
- ci/cd
- TCP
- AWS
- 트랜잭션
- Travis CI
- JPA
- ddl-auto
- 람다식
- OS
- Til
- 파일업로드설정
- Oracle
- Java
- level0
- SpringGraphQL
- N+1
- 기술면접
- 트랜잭션격리성
- 프로그래머스
- spring
- 운영체제
- graphql
- CodeDeploy
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함