jujuwon
시크릿주주
jujuwon
전체 방문자
오늘
어제
  • 분류 전체보기 (106)
    • 🔠 프로그래밍언어 (35)
      • ☕️ Java (19)
      • 🐠 Python (15)
      • 🍠 Kotlin (1)
    • 🔙 Backend (16)
      • 🌿 Springboot (12)
      • 🐳 Docker (1)
      • ☁️ AWS (3)
    • 💼 CS (12)
      • 📶 Network (12)
    • 🕹 알고리즘 (14)
      • 📑 스터디 (2)
      • 💁🏻‍♂️ 백준 (9)
      • 👨🏼‍🔬 프로그래머스 (3)
    • 📚 Book (8)
      • 🔎 오브젝트 (4)
      • 🧪 TDD (2)
      • 📜 논문 (2)
    • 🔐 보안 (7)
      • 👾 Pwnable (7)
    • 📝 회고 (4)
    • 🧩 etc. (10)
      • ⚠️ issue (2)
      • 💡 꿀팁 (7)
      • ✏️ 끄적 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 글

hELLO · Designed By 정상우.
jujuwon
🔠 프로그래밍언어/☕️ Java

Java :: 객체지향 패러다임

Java :: 객체지향 패러다임
🔠 프로그래밍언어/☕️ Java

Java :: 객체지향 패러다임

2022. 9. 12. 09:53
반응형
  • 적절한 객체에게 적절한 책임을 할당하여 서로 메시지를 주고 받으며 협력하도록 하는 것
  • 점점 증가하는 SW 복잡도를 낮추기 위해 객체지향 패러다임 대두
  • 중요한 두 가지 포인트
1. 클래스가 아닌 객체에 초점을 맞추는 것
2. 객체들에게 얼마나 적절한 역할과 책임을 할당하는가

절차지향 프로그래밍과 객체지향 프로그래밍의 차이
책임이 한 곳에 집중되어 있는 방식인가 → 절차지향
책임이 여러 객체로 적절히 분산되어 있는 방식인가 → 객체지향

 

High cohesion, loose coupling

  • 높은 응집도와 낮은 결합도성격이 다른 것들은 분리를 시키는 것 !
    응집도가 높은, 비슷한 것끼리는 하나로 모아두고,
    또한 변화가 생겼을 때, 다른 곳에는 영향을 미치지 않는다.
  • 장점이 무엇일까 ?
    변경이 생겼을 때 변경의 포인트가 하나로 집중될 수 있다.
    → 유지보수와의 관련성이 크다.

객체지향 설계를 하는 이유 ?

높은 응집도와 낮은 결합도를 가지고 유지보수 시에 용이하게 만들 수 있기 때문 !

 

객체지향 설계 순서

  • 도메인을 구성하는 객체에는 어떤 것들이 있는지 고민
  • 객체들 간의 관계를 고민
  • 동적인 객체를 정적인 타입으로 추상화해서 도메인 모델링
  • 협력 설계
  • 객체들을 포괄하는 타입(클래스)에 적절한 책임을 할당
  • 구현

참고 : 객체지향 세계에서는 모든 객체가 능동적인 존재

728x90
반응형
저작자표시 (새창열림)
  •  
  • High cohesion, loose coupling
  •  
  • 객체지향 설계 순서
'🔠 프로그래밍언어/☕️ Java' 카테고리의 다른 글
  • Java :: 객체지향 5대 설계 원칙 - SOLID
  • Java :: LocalDateTime 을 Epoch Time 으로 바꾸기
  • Java :: 객체지향의 5가지 설계원칙 SOLID
  • Java :: Stream으로 Random 수 생성
jujuwon
jujuwon

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.