Middle
Opowiedz o konstruktorach stałych w Flutterze.
sobes.tech AI
Odpowiedź od AI
Konstruktor const pozwala na utworzenie obiektu, który kompilator może obliczyć podczas kompilacji i wielokrotnie go używać. To zwiększa wydajność i zmniejsza zużycie pamięci.
Kluczowe cechy:
- Oznaczony słowem kluczowym
const. - Wszystkie pola klasy zdefiniowane przez ten konstruktor muszą być
final. - Wszystkie argumenty konstruktora muszą być również stałe lub mieć domyślne wartości stałe.
- Przy tworzeniu instancji z tym konstruktorem używa się słowa kluczowego
const.
Przykład:
class Point {
final double x;
final double y;
const Point(this.x, this.y); // Konstruktor stały
}
void main() {
// Te dwa obiekty będą reprezentować ten sam egzemplarz w pamięci
const p1 = Point(1.0, 2.0);
const p2 = Point(1.0, 2.0);
// Ten obiekt będzie nowym egzemplarzem
final p3 = Point(1.0, 2.0);
print(identical(p1, p2)); // Wypisze: true
print(identical(p1, p3)); // Wypisze: false
}
Zalety korzystania z konstruktorów const:
- Wydajność: Obiekty tworzone są tylko raz i są wielokrotnie używane.
- Zmniejszenie zużycia pamięci: Ilość tworzonych obiektów jest mniejsza.
- Niezmienność: Obiekty utworzone za pomocą
constsą niezmienialne.
Ograniczenia:
- Klasa nie powinna mieć fabrycznego konstruktora (
factory). - Klasa nie może zawierać zmiennych pól.
Konstruktory const są często używane do tworzenia niezmiennych widżetów w Flutterze, takich jak Text, Icon, Padding, SizedBox, co jest dobrą praktyką optymalizacji wydajności interfejsu użytkownika.