Sobes.tech
Junior — Middle

Мо метавонед шарҳ диҳед, ки конструктор-перепределитель чист ва чӣ гуна кор мекунад?

sobes.tech AI

Ҷавоб аз AI

Дар Flutter, сохтмонии такрорӣ як сохтмонест, ки рафтори сохтмони асосӣ ё дигар сохтмони дар ҳамон синфро иваз мекунад ё васеъ мекунад.

Беҳтар аст, ки ба сохтмонҳои номӣ ё сохтмонҳои бо оғозкунандагон ишора шавад, ки имкон медиҳанд, ки намунаҳои синф бо параметрҳо ё логикаи гуногун сохта шаванд.

Масалан, сохтмони такрорӣ бо истифода аз : барои даъвати сохтмони асосӣ:

class Animal {
  String name;
  Animal(this.name);
}

class Dog extends Animal {
  int age;

  Dog(String name, this.age) : super(name); // сохтмони такрорӣ
}

Ин ҷо, сохтмони Dog сохтмони асосии Animal-ро тавассути super(name) даъват мекунад, ки роҳи сохтани объектро иваз мекунад.

Дар Dart, инчунин мумкин аст, ки сохтмонҳои номӣ барои роҳҳои гуногуни оғоз кардан созанд:

class Point {
  double x, y;

  Point(this.x, this.y);

  Point.origin() : x = 0, y = 0; // сохтмони номӣ
}

Бинобар ин, сохтмони такрорӣ роҳи муайян кардани вариантҳои алтернативӣ ё васеъшуда барои сохтани объектҳои синф мебошад.