Middle
Реците ми о константним конструкторима у Flutter-у.
sobes.tech АИ
Одговор од АИ
Konstantni konstruktor omogućava kreiranje objekta koji prevodilac može izračunati tokom kompilacije i ponovo koristiti. To poboljšava performanse i smanjuje potrošnju memorije.
Ključne osobine:
- Obeležen ključnom rečju
const. - Sva polja klase definisana ovim konstruktorom moraju biti
final. - Svi argumenti konstruktora takođe moraju biti konstantni ili imati podrazumevane konstantne vrednosti.
- Pri kreiranju instance sa ovim konstruktorom koristi se ključna reč
const.
Primer:
class Point {
final double x;
final double y;
const Point(this.x, this.y); // Konstantni konstruktor
}
void main() {
// Ova dva objekta će predstavljati istu instancu u memoriji
const p1 = Point(1.0, 2.0);
const p2 = Point(1.0, 2.0);
// Ovaj objekat će biti nova instanca
final p3 = Point(1.0, 2.0);
print(identical(p1, p2)); // Ispisaće: true
print(identical(p1, p3)); // Ispisaće: false
}
Prednosti korišćenja const konstruktora:
- Performanse: Objekti se kreiraju samo jednom i ponovo koriste.
- Smanjenje potrošnje memorije: Smanjuje se broj kreiranih objekata.
- Nepromenljivost: Objekti kreirani sa
constsu nepromenljivi.
Ograničenja:
- Klasa ne sme imati fabrički konstruktor (
factory). - Klasa ne sme sadržavati promenljive polja.
Konstantni konstruktori se često koriste za kreiranje nepromenljivih widget-a u Flutter-u, kao što su Text, Icon, Padding, SizedBox, što je dobra praksa za optimizaciju performansi korisničkog interfejsa.