오브젝트
OOP, 객체, 클래스?
클래스와 오브젝트
오브젝트
? 프로그램을 실행하면 만들어져서 동작하는 것.
클래스
? 오브젝트를 만들어내기 위해서 필요한 것. 우리가 작성하는 코드(청사진, 설계도)
클래스의 인스턴스 = 오브젝트
Class Instance
인스턴스
? 추상적인 것에 대한 실체
클래스를 가지고 실체화한 것
자바에서는 배열(Array)도 오브젝트
의존관계
Dependency
A → B : A가 B에 의존한다.
의존관계 2가지 관점
Class 사이의 의존관계(Class 레벨의 의존관계, Code 레벨의 의존관계)
Client의 기능이 제대로 동작하려면 Supplier가 필요
Client가 Supplier를 사용, 호출, 생성, 인스턴스화, 전송
Supplier가 변경되면 Client 코드가 영향을 받음
코드레벨에서 바로 알 수 있음 의존하고 있는 코드가 변경 되면 나의 코드도 바뀔 가능성이 높음
오브젝트 사이의 의존관계
프로그램을 실행하는 런타임 환경에서 의존관계가 만들어짐