반응형
객체지향 프로그래밍 2
컴파일 시간 의존성과 실행 시간 의존성
코드의 의존성
과실행 시점의 의존성
- 코드의 의존성과 실행 시점의 의존성은 서로 다를 수 있다. -> 클래스 사이의 의존성과 객체 사이의 의존성은 동일하지 않을 수 있다.
- 유연하고, 쉽게 재사용할 수 있으며, 확장 가능한 객체지향 설계가 가지는 특징은
코드의 의존성
과실행 시점의 의존성
이 다르다는 것이다. - 코드의 의존성과 실행 시점의 의존성이 다르면?
- 코드를 이해하기 위해서는 코드뿐만 아니라 객체를 생성하고 연결하는 부분을 찾아야 하기 때문에
코드를 이해하기 어려워진다.
- 하지만 코드는 더
유연해지고 확장 가능해진다.
- 코드를 이해하기 위해서는 코드뿐만 아니라 객체를 생성하고 연결하는 부분을 찾아야 하기 때문에
무조건 유연한 설계도, 무조건 읽기 쉬운 코드도 정답이 아니다.
차이에 의한 프로그래밍
차이에 의한 프로그래밍
: 상속을 이용해 부모 클래스와 다른 부분만을 추가해서 새로운 클래스를 쉽고 빠르게 만드는 방법상속
: 두 클래스 사이의 관게를 정의하는 방법, 상속 관계를 선언하믕로써 한 클래스는 자동으로 다른 클래스가 제공하는 코드를 자신의 일부로 합칠 수 있다.- 상속을 사용하면 코드 중복을 제거하고 여러 클래스 사이에서 동일한 코드를 공유할 수 있게 된다.
상속과 인터페이스
상속이 가치있는 이유
: 부모 클래스가 제공하는 모든 인터페이스를 자식 클래스가 물려받을 수 있기 때문에업캐스팅
: 자식 클래스가 부모 클래스를 대신하는 것
다형성
다형성
: 동일한 메시지를 수신했을 때 객체의 타입에 따라 다르게 응답할 수 있는 능력- 추상 클래스와 같이 부모 클래스에 동일한 메시지를 전송하지만 실제로 어떤 메서드가 실행될 것인지는 메시지를 수신하는 객체의 클래스가 무엇이냐에 따라 달라지는 것
- 다형성은 컴파일 시간 의존성과 실행 시간 의존성을 다르게 만들 수 있는 객체지향의 특성을 이용해 서로 다른 메서드를 실행할 수 있게 한다.
- 이렇게 추상 클래스와 같은 부모 클래스를 이용하여 자손 클래스의 인터페이스를 통일하기 위해 사용한 구현 방법이
상속
이다. 지연바인딩
,동적 바인딩
: 메시지와 메서드를 실행 시점에 바인딩한다는 것- 객체지향이 컴파일 시점의 의존성과 실행 시점의 의존성을 분리하고, 하나의 메시지를 선택적으로 서로 다른 메서드에 사용할 수 있는 이유
초기 바인딩
,정적 바인딩
: 컴파일 시점에 실행될 함수나 프로시저를 결정하는 것구현 상속
: 코드를 재사용하기 위한 목적으로 상속을 사용하는 것인터페이스 상속
: 다형적인 협력을 위해 부모 클래스와 자식 클래스가 인터페이스를 공유할 수 있도록 상속을 이용하는 것
반응형
'ETC > 개발 지식' 카테고리의 다른 글
[CleanCode] 3장 함수 - 1 (0) | 2022.06.26 |
---|---|
[CleanCode] 2장 의미있는 이름 (0) | 2022.06.25 |
Cron 표현식 (0) | 2022.06.24 |
[Object] 객체지향 프로그래밍 1 (0) | 2022.05.16 |
[Object] 객체지향 설계 (0) | 2022.05.10 |
[Object] 객체와 설계 (0) | 2022.05.09 |