[플러터] sealed
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
Flutter에서 "sealed"은 상속 계층 구조에서 클래스 계층을 제한하는 데 사용되는 어노테이션입니다.
"sealed" 어노테이션은 특정 클래스를 해당 파일 내에서만 상속 가능하도록 만듭니다. 이를 통해 상속 계층 구조를 더 엄격하게 제어하고 클래스의 안정성을 높일 수 있습니다.
일반적으로 Flutter에서 클래스 계층은 다음과 같이 구성됩니다. 하나의 기본 클래스(superclass)가 있고, 이를 상속한 여러 하위 클래스(subclass)가 존재합니다.
하지만 경우에 따라 특정 클래스를 기반으로 새로운 클래스를 생성하는 것을 방지하고 싶을 수 있습니다.
이럴 때 "sealed" 어노테이션을 사용하여 해당 클래스를 봉인(sealed)할 수 있습니다.
sealed 어노테이션이 적용된 클래스는 다른 파일에서 상속할 수 없으며, 같은 파일 내에서만 상속이 가능합니다.
이를 통해 상속 계층의 깨끗함(cleanliness)과 안정성을 유지할 수 있습니다.
sealed 어노테이션은 코드 유지 관리, 디버깅 및 타입 안정성을 개선하기 위해 사용될 수 있습니다.
다음은 sealed 어노테이션의 예시입니다:
import 'package:meta/meta.dart';
@sealed
abstract class Vehicle {
void start();
void stop();
}
class Car extends Vehicle {
@override
void start() {
print('Car started');
}
@override
void stop() {
print('Car stopped');
}
}
class Bike extends Vehicle {
@override
void start() {
print('Bike started');
}
@override
void stop() {
print('Bike stopped');
}
}
위의 예시에서 Vehicle 클래스에 @sealed 어노테이션이 적용되었습니다.
이로 인해 Car 및 Bike 클래스는 같은 파일 내에서만 상속할 수 있습니다.
다른 파일에서 Vehicle 클래스를 상속하려고 하면 컴파일 오류가 발생합니다.
sealed 클래스를 사용하면 상속 계층 구조를 제어하여 코드의 가독성과 유지 관리를 개선할 수 있습니다.
'플러터 앱 개발 > 기타' 카테고리의 다른 글
[플러터] Switch문 간결하게 사용하기 (0) | 2023.06.01 |
---|---|
코드로 클릭 효과 주기 (0) | 2023.05.31 |
[플러터] Dart 3.0 class의 키워드 (0) | 2023.05.24 |
[플러터] Dart 3.0 패턴 매칭(switch, for, if) (0) | 2023.05.24 |
[플러터] Dart 3.0 디스트럭처링 (destructuring) (0) | 2023.05.24 |
[플러터] 메소드에서 리턴 값 두개 받기 (0) | 2023.05.12 |
[플러터] Flutter Update: Windows (0) | 2023.05.08 |
[플러터] Flutter의 미래에 대해 알아야 할 4가지 (0) | 2023.05.08 |