https://www.yes24.com/Product/Goods/18249021
객체지향의 사실과 오해 - YES24
『객체지향의 사실과 오해』는 객체지향이란 무엇인가라는 원론적면서도 다소 위험한 질문에 답하기 위해 쓰여진 책이다. 안타깝게도 많은 사람들이 객체지향의 본질을 오해하고 있다. 가장
www.yes24.com
Ch.04 ~ Ch.05
📌 - 읽기 전에 요약했던 내용들
- 역할,책임,협력 - 객체들 간의 협력에 집중하라.
- 객체 지향의 개발에서 가장 중요한 능력은 책임을 능숙하게 소프트웨어 객체에 할당하는 것. → 왕은 ‘재판을 수행하라’는 요청에 응답해야 함으로 ‘재판을 수행할’ 책임이 있음
- 역할은 객체지향 설계의 단순성, 유연성, 재사용성을 뒷받침하는 개념
- 올바른 객체를 설계하기 위해서는 먼저 견고하고 깔끔한 협력을 설계해야 한다. → 설계에 참여하는 객체들이 주고받을 요청과 응답의 흐름을 결정한다.
- 책임 주도 설계 자세히
- 시스템이 사용자에게 제공해야 하는 기능인 시스템 책임을 파악
- 더 작은 책임으로 분할
- 분할된 책임을 수행할 적절한 객체, 역할을 찾아 할당
- 객체가 책임을 수행하는 중 다른 객체의 도움이 필요한 경우 이를 책임질 적절한 객체 , 역할 찾음
- 해당 객체에게 책임을 할당함으로써 협력
- 책임감 분산 → CPR
- 클래스와 객체 차이??
- 캡슐화 정리
- 책임이 자율적이어야 한다. → 자율적일 수록 적절하게 추상화되며, 응집도가 높아지고, 결합도가 낮아지며, 캡슐화가 증진되고, 인터페이스와 구현이 명확히 분리. 설계의 유연성과 재사용성이 향상된다. → 자바 코드로 보고 싶음 →
- 객체 지향의 강력함을 누리기 위한 출발점은 책임을 자율적으로 만드는 것!
협력 → 자바에 비유하면?
📌 - 데이터 주도설계 vs 책임주도설계
객체지향 - 데이터 주도설계에서 책임주도설계로
출처
velog.io
💠 객체의 결합도 & 응집도 의미와 단계 💯 총정리
소프트웨어의 모듈 독립성 자고로 프로그래밍이란 문제를 정의하고 하나씩 해결해나가는 과정을 말한다. 만약 문제가 복잡하고 큰 문제라면, 일반적으로 문제를 작은 부분으로 쪼개어서 하나
inpa.tistory.com
그리고 결합도와 응집도의 강도 세기에 따라 여러 단계로 나뉘게 되는데 응집도는 높을수록, 결합도는 낮을수록 독립성이 높은 모듈로 평가 된다.
메서드가 명령문들의 그룹으로 구성되고 각 그룹에 주석을 달아야 할 필요가 있다면 그 메서드의 응집도는 낮은것이다.
public static void startGame() {
init_game();
get_player();
play_game();
}
- [ ] 읽어볼 것!!!! 오브젝트』, 위키북스(2019), p196~201.
p115
객체지향) 객체의 역할, 책임, 협력
대부분의 책에서 객체지향은 역할, 책임, 협력이 중요하다고 한다. 도대체 역할, 책임, 협력은 정확히 객체세계에서 어떤 부분을 이루고 있을까? 한번 알아보자. 협력 객체지향 시스템은 자율적
devroach.tistory.com
class A {
int B; // 아는 것
int multiply(int b) {
return b*b;
}
}
p134
컴포지트 패턴(Composite Pattern) :: 마이구미
컴포지트 패턴(Composite Pattern) :: 마이구미
이 글은 디자인 패턴 중 컴포지트 패턴(Composite Pattern) 을 다룬다.위키피디아의 내용을 기반으로 정리할 예정이다.위키 - https://en.wikipedia.org/wiki/Composite_pattern 글의 주제를 다루기에 앞서, 글들을
mygumi.tistory.com
p155
객체 vs 클래스 (+ 인스턴스까지)
[Java] 클래스, 객체, 인스턴스의 차이 - Heee's Development Blog
[Java] 클래스, 객체, 인스턴스의 차이 - Heee's Development Blog
Step by step goes a long way.
gmlwjd9405.github.io
class A{
private int B;
int getter(){
return this.B;
}
void setter(int B){
this.B= B;
}
}
pmsv{
A a = new A();
a.B = 10;
}
객체지향 프로그래밍의 5가지 설계 원칙
https://mangkyu.tistory.com/194
[OOP] 객체지향 프로그래밍의 5가지 설계 원칙, 실무 코드로 살펴보는 SOLID
이번에는 객체 지향 프로그래밍의 5가지 핵심 원칙인 SOLID에 대해 알아보고자 합니다. 실제로 애플리케이션을 개발할 때 어떻게 적용할 수 있을지 구체적인 예시를 들어 살펴보고자 합니다. 아
mangkyu.tistory.com