Constructor di Dart (Named & Factory)
Penjelasan
Dart punya fitur khas: named constructor — sebuah class bisa punya LEBIH DARI SATU constructor dengan nama berbeda (mis. Titik.origin()), berguna untuk menyediakan beberapa cara membuat object yang masuk akal. factory constructor dipakai kalau logika pembuatan object lebih rumit (mis. tidak selalu membuat instance baru, atau perlu validasi sebelum instance dibuat).
Contoh Konsep
class Titik {
double x, y;
Titik(this.x, this.y);
Titik.origin() : x = 0, y = 0; // named constructor
factory Titik.dariString(String data) { // factory constructor
var bagian = data.split(",");
return Titik(double.parse(bagian[0]), double.parse(bagian[1]));
}
}
void main() {
var p1 = Titik.origin();
var p2 = Titik.dariString("3,4");
print("${p1.x}, ${p1.y}"); // 0.0, 0.0
print("${p2.x}, ${p2.y}"); // 3.0, 4.0
}
Praktikum
Buat class Siswa dengan constructor biasa Siswa(this.nama), dan named constructor Siswa.tanpaNama() yang mengisi nama dengan "Anonim". Buat dua object memakai keduanya, lalu tampilkan nama masing-masing.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
factory constructor TIDAK otomatis membuat instance baru (beda dari constructor biasa) — kamu wajib menulis logikanya sendiri dan mengembalikan object secara eksplisit lewat return, memberi fleksibilitas penuh kapan/bagaimana object dibuat.