Single Responsibility Principle(SRP)
Dan il-prinċipju jgħid li kull klassi jew widget għandu jkollu responsabbiltà waħda. Tenfasizza li klassi jew widget għandu jwettaq funzjoni speċifika waħda u ma jkollux wisq raġunijiet biex jinbidel.
Eżempju: Oħloq widget biex turi l-informazzjoni tal-utent u widget separat biex turi lista ta’ postijiet.
class UserProfileWidget extends StatelessWidget {
// Logic to display user information
}
class PostListWidget extends StatelessWidget {
// Logic to display a list of posts
}
Open/Closed Principle(OCP)
Dan il-prinċipju jinkoraġġixxi l-estensjoni tal-funzjonalità billi żżid kodiċi ġdid aktar milli jimmodifika kodiċi eżistenti.
Eżempju: Ibni widget biex turi tipi differenti ta' prodotti f'app tal-kummerċ elettroniku.
abstract class ProductWidget extends StatelessWidget {
// Common logic for displaying products
}
class ElectronicProductWidget extends ProductWidget {
// Logic to display electronic products
}
class ClothingProductWidget extends ProductWidget {
// Logic to display clothing products
}
Liskov Substitution Principle(LSP)
Dan il-prinċipju jasserixxi li oġġetti ta' klassi derivata għandhom ikunu sostitwibbli għal oġġetti tal-klassi bażi mingħajr ma jaffettwaw il-korrettezza tal-programm.
Eżempju: Ibni widget biex timmaniġġja forom ġeometriċi.
abstract class ShapeWidget extends StatelessWidget {
// Common logic for displaying shapes
}
class RectangleWidget extends ShapeWidget {
// Logic to display rectangles
}
class CircleWidget extends ShapeWidget {
// Logic to display circles
}
Interface Segregation Principle(ISP)
Dan il-prinċipju jagħti parir li l-interfaces jitkissru f'oħrajn iżgħar biex jiġi evitat li l-klassijiet jew il-widgets jiġu mġiegħla jimplimentaw metodi li m'għandhomx bżonn.
Eżempju: Interfaces għall-aġġornament u l-wiri tad-dejta.
abstract class Updateable {
void update();
}
abstract class Displayable {
void display();
}
Dependency Inversion Principle(DIP)
Dan il-prinċipju jissuġġerixxi l-użu ta 'injezzjoni ta' dipendenza biex jimmaniġġjaw id-dipendenzi.
Eżempju: Uża injezzjoni tad-dipendenza biex timmaniġġja d-dipendenzi fil-widgets.
class OrderProcessor {
final DBConnection _dbConnection;
final EmailService _emailService;
OrderProcessor(this._dbConnection, this._emailService);
}
Ftakar li l-applikazzjoni tal SOLID -prinċipji fl Flutter għandha ssir b'mod flessibbli abbażi tal-iskop speċifiku tal-proġett tiegħek u l-fehim tiegħek ta ' SOLID u Flutter.