[디자인 패턴] 2. 동적 바인딩과 추상화

lhs's avatar
Nov 13, 2024
[디자인 패턴] 2. 동적 바인딩과 추상화
 

1. 동적 바인딩( Dynamic binding)

  • 동적 바인딩이란 메서드 호출이나 메서드 오버라이딩 처리를 할 때, 컴파일 시간이 아닌 실행 시간에 결정되는 방식이다.
  • 객체 지향 프로그래밍에서 다형성과 밀접한 관련이 있다.
  • 예제 코드
    • class A{ void print(){ System.out.print("A"); } } class B extends A{ void print(){ System.out.print("B"); } } public class Main{ public static void main(String[] args) { A b = new B(); b.print(); } }
    • 예제에서 bA일 수도 있고 B일 수도 있다.
    • print() 메서드가 호출될 때 b의 객체에 맞는 Bprint()가 호출되는데 이를 동적바인딩이라 한다.

2. 추상화(Abstraction)

  • 추상화는 복잡한 시스템을 단순화하는 기법으로, 불필요한 세부 사항을 숨기고 중요한 개념만을 드러내는 방법이다.
  • 객체 지향 프로그래밍에서 추상화는 클래스나 객체를 설계할 때, 세부 구현을 숨기고 인터페이스나 추상 클래스를 통해 핵심적인 부분만을 제공하는 것이다.
  • 예제 코드
    • abstract class Animal{ abstract void Sound(); } class Cat extends Animal{ @Override void sound() { System.out.println("야옹"); } }
    • Animal은 추상 클래스로 sound()라는 추상 메서드를 정의해 동물은 소리를 낸다는 일반적인 개념만 정의하고 세부 구현은 자식 클래스에서 구현하도록 한다.
    • CatAnimal을 상속받아 sound()를 구현해서 추상화된 Animal을 구체적인 Cat으로 만들었다.
Share article

LHS's Study Space