Sobes.tech
Middle

Pastāstiet man par konstantiem konstruktoriem Flutter.

sobes.tech AI

Atbilde no AI

Konstantais konstruktoram ir iespēja izveidot objektu, kuru kompilators var aprēķināt laikā kompilācijas un izmantot atkārtoti. Tas uzlabo veiktspēju un samazina atmiņas patēriņu.

Galvenās iezīmes:

  • Atzīmēts ar atslēgvārdu const.
  • Visiem klases laukiem, kas definēti ar šo konstruktoru, jābūt final.
  • Visiem konstruktoru argumentiem jābūt arī konstatīviem vai jābūt ar noklusējuma konstatīviem.
  • Izveidojot eksemplāru ar šo konstruktoru, tiek izmantots atslēgvārds const.

Piemērs:

class Point {
  final double x;
  final double y;

  const Point(this.x, this.y); // Konstants konstruktor
}

void main() {
  // Šie divi objekti attēlos vienu un to pašu eksemplāru atmiņā
  const p1 = Point(1.0, 2.0);
  const p2 = Point(1.0, 2.0);

  // Šis objekts būs jauns eksemplārs
  final p3 = Point(1.0, 2.0);

  print(identical(p1, p2)); // Izvadīs: true
  print(identical(p1, p3)); // Izvadīs: false
}

Priekšrocības, izmantojot const konstruktorus:

  • Veiktspēja: Objekti tiek izveidoti tikai vienreiz un tiek atkārtoti izmantoti.
  • Atmiņas patēriņa samazināšana: Samazinās izveidoto objektu skaits.
  • Neizmaināmība: Objekti, kas izveidoti ar const konstruktoru, ir neizmaināmi.

Ierobežojumi:

  • Klasei nedrīkst būt fabrika konstruktoru (factory).
  • Klase nedrīkst saturēt maināmus laukus.

Konstanti konstruktorus bieži izmanto, lai izveidotu neizmaināmus Flutter widgetus, piemēram, Text, Icon, Padding, SizedBox, kas ir laba prakse veiktspējas optimizācijai lietotāja saskarnē.