프로그래밍 언어 Dart(다트)는 재밌는 개념이 많이 있습니다.
그 중 하나는 named constructor입니다.
named constructor의 사용법과 왜 쓰는지에 대해서 한번 알아보도록 하겠습니다.
named constructor는 클래스의 인스턴스를 생성할 때 사용하는 특별한 타입의 생성자입니다.
Dart는 하나의 클래스에서 여러 개의 생성자를 정의할 수 있게 해주는데, 이를 가능하게 하는 것이 named constructor입니다.
named constructor를 사용하면, 생성자에 이름을 붙여서 같은 클래스의 다른 생성자와 구별할 수 있습니다.
예제
// Champion 클래스 생성
class Champion {
String name, team;
int level;
// 기본 생성자
Champion({
required this.name,
required this.team,
required this.level,
});
// named constructor #1. 첫 시작할 때 초보자 챔피언 생성
Champion.beginner()
: name = 'Ashe',
team = 'blue',
level = 1;
// named constructor #2. 블루팀 챔피언 생성
Champion.createBlueTeam({
required String name,
}) : name = name,
team = 'blue',
level = 1;
// named constructor #3. 레드팀 챔피언 생성
Champion.createRedTeam({
required String name,
}) : name = name,
team = 'red',
level = 1;
}
void main() {
// 기본 생성자를 활용한 챔피언(인스턴스) 생성
Champion blackLobster = Champion(
name: 'blackLobster',
team: 'green',
level: 100,
);
print(blackLobster.name); // 'blackLobster'
print(blackLobster.team); // 'green'
print(blackLobster.level); // 100
// 초보자 챔피언 생성
Champion beginner = Champion.beginner();
print(beginner.name); // 'Ashe'
print(beginner.team); // 'blue'
print(beginner.level); // 1
// 블루팀 챔피언 생성
Champion gragas = Champion.createBlueTeam(name: 'Gragas');
print(gragas.name); // 'Gragas'
print(gragas.team); // 'blue'
print(gragas.level); // 1
}
위 예제처럼 생성자 안에 여러 생성자를 정의하여 사용할 수 있습니다.
사용 하는 이유가 뭐예요?
named constructor를 사용하는 이유는 3가지 정도로 추려볼 수 있을 것 같습니다.
1. 명확성, 가독성
named constructor는 생성자의 용도를 명확하게 표현할 수 있게 해줍니다. 예제처럼 'beginner', 'createBlueTeam'과 같이 명확한 메서드명으로 인해 해당 생성자가 어떤 역할을 하는지 용도를 분명하게 밝힐 수 있습니다. 이는 가독성을 높여주기도 하죠.
2. 유연성
하나의 클래스 안에 여러 생성자를 정의함으로써 다양한 초기화 경로를 제공합니다. 다양한 상황에 대응할 수 있는 유연성을 제공해주는 셈이죠.
3. 유지보수
결국 named constructor에 명확한 역할을 부여함으로써, 코드의 유지보수 향상에 도움을 줍니다. 각 생성자가 하는 일이 명확해지기 때문에 코드를 이해하고 수정하는데 드는 비용이 줄어듭니다.
Flutter(플러터)를 위해 Dart를 있는데, 재밌는 개념이 많이 있네요.
다음에 또 재밌는 개념이 있으면 소개하도록 하겠습니다.
최근댓글