extension

하요·2024년 7월 2일
0
post-thumbnail

Dart에서 클래스 기능 확장하기: extension

Dart에서 extension 키워드는 기존 클래스의 기능을 추가할 때 사용됩니다. 이를 통해 클래스의 소스 코드를 수정하지 않고도 새로운 메서드나 속성을 추가할 수 있습니다.

주요 개념

  • 기능 추가: 기존 클래스에 새로운 메서드나 속성을 추가할 수 있습니다.
  • 클래스 수정 불필요: 원본 클래스의 소스 코드를 수정하지 않고 기능을 확장할 수 있습니다.
  • 유연한 확장: 클래스의 인스턴스를 확장하여 유연하게 새로운 기능을 제공합니다.

주요 사용 사례

  • 기존 클래스 기능 확장: 클래스의 기본 기능을 확장하여 새로운 메서드나 속성을 추가할 때 사용합니다.
  • 유틸리티 메서드 추가: 특정 클래스에 유용한 유틸리티 메서드를 추가하여 코드를 간결하게 만듭니다.
  • 일관된 인터페이스 제공: 여러 클래스에 공통된 메서드를 추가하여 일관된 인터페이스를 제공합니다.

주요 활용도

  • 클래스 확장: 기존 클래스에 새로운 기능을 추가하여 확장합니다.
  • 코드 간소화: 자주 사용하는 기능을 클래스에 직접 추가하여 코드를 간소화합니다.
  • 모듈화된 확장: 클래스를 모듈화하여 필요한 기능만을 선택적으로 추가할 수 있습니다.

코드 예제

extension 사용 예제

class Machine {}

void main() {
  final machine = Machine();
  // machine.printing();
  // machine.scanning();
}

extension 추가 예제

extension MyMachineExt on Machine {
  void scanning() => print("scanning...");
  void printing() => print("printing...");
}

class Machine {}

void main() {
  final machine = Machine();
  machine.printing();
  machine.scanning();
}
  • MyMachineExt 확장을 통해 Machine 클래스에 scanning()printing() 메서드를 추가했습니다.
  • 확장 메서드는 클래스의 인스턴스를 통해 호출할 수 있습니다.

추가 팁

  • 확장 클래스의 이름은 임의로 지정 가능: 확장 클래스의 이름은 마음대로 지을 수 있으며, 의미 있는 이름을 사용하는 것이 좋습니다.
  • 확장 메서드는 클래스 인스턴스를 통해 호출: 확장된 메서드는 기존 클래스의 인스턴스를 통해 호출할 수 있습니다.
  • 중복 메서드 주의: 확장에서 기존 클래스와 동일한 이름의 메서드를 정의하면, 확장의 메서드가 호출됩니다.

관련 자료

profile
flutter 개발자(진)

0개의 댓글