안녕하세요 아이티 석사 Ho입니다. 오늘은 flutter 면접 질문 #2 시간입니다.
flutter의 특징중 다중 상속이 가능 부분이 있는데 mixin이라는 기능입니다.
Flutter에서 mixin은 Dart 언어의 기능으로, 여러 클래스 계층에서 코드를 재사용하기 위한 방법을 제공합니다. mixin은 클래스의 일부 기능을 정의할 수 있으며, 이 기능들은 하나 이상의 다른 클래스에서 사용될 수 있습니다. 이는 다중 상속의 일부 장점을 제공하지만, 다중 상속의 복잡성과 몇 가지 문제점을 피할 수 있도록 도와줍니다.
Mixin 사용 방법
mixin 키워드를 사용하여 mixin을 정의합니다.
with 키워드를 사용하여 클래스에 mixin을 적용합니다.
예시 코드
다음은 Flutter에서 mixin을 사용하는 간단한 예시입니다. 이 예시에서는 두 개의 mixin Walker와 Swimmer를 정의하고, 이를 Animal 클래스에 적용하여 Duck 클래스에서 사용합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | mixin Walker { void walk() { print("Walking"); } } mixin Swimmer { void swim() { print("Swimming"); } } class Animal { // 기본 Animal 클래스 정의 } class Duck extends Animal with Walker, Swimmer { // Duck은 Walker와 Swimmer 기능을 모두 가짐 void quack() { print("Quack"); } } void main() { final duck = Duck(); duck.walk(); // Walker mixin에서 제공 duck.swim(); // Swimmer mixin에서 제공 duck.quack(); // Duck 클래스에서 직접 정의 } | cs |
이 코드는 Duck 클래스가 Walker와 Swimmer의 기능을 모두 사용할 수 있게 해줍니다. Duck 인스턴스를 만들고 walk(), swim(), 그리고 quack() 메서드를 호출할 수 있습니다. 이 예시에서는 Duck 클래스가 Animal 클래스를 확장하고 있지만, 동시에 Walker와 Swimmer mixin의 기능을 with 키워드를 사용하여 포함하고 있습니다.
Mixin의 장점
코드 재사용성: 공통 기능을 mixin에 정의하여 여러 클래스에서 재사용할 수 있습니다.
유연성: 필요에 따라 여러 mixin을 조합하여 사용할 수 있으며, 클래스 계층을 변경하지 않고도 기능을 추가할 수 있습니다.
명확성: with 키워드를 사용함으로써 클래스가 어떤 mixin을 사용하고 있는지 명확히 알 수 있습니다.
Mixin은 Flutter 개발에서 유용하게 사용될 수 있으며, 특히 다양한 위젯이나 클래스에 공통적으로 적용되어야 하는 기능을 구현할 때 매우 효과적입니다.
0 Comments