Object

스터디를 시작했는데 진행하며 책 내용을 적자


chapter 1

내부에 접근하는 모든 로직을 해당 도메인(클래스) 안으로 캡슐화해서 결합도를 낮춘다.
메소드를 호출해서 목적을 달성하는 인터페이스에만 의존하게 한다, 각자의 일은 각자
객체들을 고민, 어떤객체가 필요하고 어떤 상태, 행동등
객체는 독립적인 존재x 공동체 일원
객체윤곽 > 공통특성, 상태 객체를 타입분류, 타입기반으로 클래스 구현
도메인 - 사용자가 프로그램을 사용하는 분야

상영 - 영화 - 할인정책 - 할인 조건
|
예매
영화예매 도메인을 구성하는 타입들의 구조
클래스의 내외부구분
인스턴스 -> private, 메서드는 public 형태로
외부에서 객체의 속성에 직접 접근x, public 메소드를 통해서만 접근하게 하자
경졔의 명확성 = 객체의 자율성

외부접근 가능 = interface
내부에서 접근가능 = implements
interface를 둠으로써 클래스간의 관계를 간접적으로 바꿈
생성자는 생성 시 클래스를 초기화해줌

사실 chapter 1에선 객체지향에 대한 이론을 다시 배운 것 같은 기분이었다.
얕다고 할수는 없는게 코드랑 같이 비교하며 보는 내용들은 정말 좋았다.
interface에 대한 생각을 달리 할 수 있어서 좋았던 것 같다.


chapter 2

객체지향에서 중요한 것 - 상속과 다형성, 추상화 기반
부모클래스에 기본적인 알고리즘 흐름을 구현하고 중간에 필요한 처리를 추상메서드인 자식클래스에게 위임-Template method 패턴
상속은 기존 크래스를 기반으로 새로운 클래스를 쉽고 빠르게 추가할 수 있는 간편한 방법을 제공한다.
코드를 수정하지않고 코드를 재사용하기에 가장 좋은 방법이다
부모클래스의 구현은 공유하면서 다른부분만 추가하는 방법으로 자식 클래스를 쉽게 추가할 수 있는데 이를 차이에 의한 프로그래밍이라 한다. 컴파일러는 코드상에서 부모클래스를 대신해 자식클래스를 사용하는 것을 허용하는데 이를 업캐스팅
상속은 결합도가 높아지기에 합성을..
interface는 기능 위주 상속은 구현위주
사실 개발하면서 상속을 거의 써본적이 없다.


####chapter 3