Sobes.tech
Middle

Povedzte mi o konštantných konštruktoroch vo Flutteri.

sobes.tech AI

Odpoveď od AI

Konštantný konštruktor umožňuje vytvoriť objekt, ktorý môže prekladač vypočítať počas kompilácie a znovu ho použiť. To zvyšuje výkon a znižuje spotrebu pamäte.

Kľúčové vlastnosti:

  • Označené kľúčovým slovom const.
  • Všetky polia triedy definované týmto konštruktorom musia byť final.
  • Všetky argumenty konštruktora musia byť tiež konštantné alebo mať predvolené konštantné hodnoty.
  • Pri vytváraní inštancie s týmto konštruktorom sa používa kľúčové slovo const.

Príklad:

class Point {
  final double x;
  final double y;

  const Point(this.x, this.y); // Konštantný konštruktor
}

void main() {
  // Tieto dva objekty budú predstavovať rovnakú inštanciu v pamäti
  const p1 = Point(1.0, 2.0);
  const p2 = Point(1.0, 2.0);

  // Tento objekt bude novou inštanciou
  final p3 = Point(1.0, 2.0);

  print(identical(p1, p2)); // Vytlačí: true
  print(identical(p1, p3)); // Vytlačí: false
}

Výhody používania const konštruktorov:

  • Výkon: Objekty sú vytvárané iba raz a znovu sa používajú.
  • Zníženie spotreby pamäte: Počet vytvorených objektov sa znižuje.
  • Nemennosť: Objekty vytvorené s const sú nemenné.

Obmedzenia:

  • Trieda nesmie mať továrenský konštruktor (factory).
  • Trieda nemôže obsahovať meniteľné polia.

Konštantné konštruktory sa často používajú na vytváranie nemenných widgetov vo Flutteri, ako sú Text, Icon, Padding, SizedBox, čo je dobrá prax na optimalizáciu výkonu používateľského rozhrania.