상속을
통해 연결된다.구현 클래스
가 추상 타입을 상속받는 방식
으로 둘을 연결함LogCollector
+collect()
^
|
|
+-+-----------+-----------+
| | |
FtpLogFile Socket DbTable
Downloader LogReader LogGateway
FtpLogFileDownloader
, SocketLogReader
, DbTableLogGateway
라는 구현 클래스들이 상속받는 구조추상 타입
과 실제 구현 클래스
를 연결하면, 다음과 같이 추상 타입을 사용해 코드를 작성이 가능하다.// createLogCollector()는 알맞은 구현 클래스의 객체를 생성
LogCollector collector = createLogCollector();
collector.collect();
collector.collect()
코드의 경우 실제 collector
객체 타입의 collect()
메서드를 호출 가능함.
createLogCollector()
가 SocketLogReader
클래스의 객체를 생성한 경우, collector.collect()
의 경우 는 SocketLogReader
타입의 collect
메서드를 실행이 가능하다.LogCollector
인터페이스에 정의된 기능을 실제로 구현한다.콘크리트 클래스
라고 부른다고 함.구상
클래스 == 콘크리트
클래스 라고 보면됨…