[개발자_객체지향_디자인패턴] 추상 타입과 실제 구현의 연결

박상준·2024년 8월 15일
0

추상 타입과 실제 구현의 연결

상속을 통한 연결

  • 추상 타입과 실제 구현 클래스 자체는 상속을 통해 연결된다.
  • 구체적으로, 구현 클래스추상 타입을 상속받는 방식으로 둘을 연결함
LogCollector
+collect()
    ^
    |
    |
  +-+-----------+-----------+
  |             |           |
FtpLogFile   Socket     DbTable
Downloader  LogReader  LogGateway
  • LogColletor 라는 추상 타입을 FtpLogFileDownloader, SocketLogReader, DbTableLogGateway라는 구현 클래스들이 상속받는 구조

추상 타입을 이용한 코드 작성

  • 상속을 통해 추상 타입실제 구현 클래스를 연결하면, 다음과 같이 추상 타입을 사용해 코드를 작성이 가능하다.
    // createLogCollector()는 알맞은 구현 클래스의 객체를 생성
    LogCollector collector = createLogCollector();
    collector.collect();
  • 런타임 도중에 어떤 객체를 사용할 것인지 임의로 선택이 가능해진다.

다형성 활용

collector.collect() 코드의 경우 실제 collector 객체 타입의 collect() 메서드를 호출 가능함.

  • createLogCollector()SocketLogReader 클래스의 객체를 생성한 경우, collector.collect() 의 경우 는 SocketLogReader 타입의 collect 메서드를 실행이 가능하다.

콘크리트 클래스 (Concrete Class)

  • 각 하위 타입은 모두 상위 타입인 LogCollector 인터페이스에 정의된 기능을 실제로 구현한다.
  • 해당 클래스들을 콘크리트 클래스 라고 부른다고 함.

콘크리트 클래스?

  • 왜 콘크리트 클래스라고 부르는 지는 원어와 한국말의 이격이 있다고 한다..
  • 구상 클래스 == 콘크리트 클래스 라고 보면됨…
profile
이전 블로그 : https://oth3410.tistory.com/

0개의 댓글