Single Responsibility Principle(SRP)
Ky parim thotë se çdo klasë ose widget duhet të ketë një përgjegjësi të vetme. Ai thekson se një klasë ose miniaplikacion duhet të kryejë një funksion specifik dhe të mos ketë shumë arsye për të ndryshuar.
Shembull: Krijoni një miniaplikacion për të shfaqur informacionin e përdoruesit dhe një miniaplikacion të veçantë për të shfaqur një listë postimesh.
class UserProfileWidget extends StatelessWidget {
// Logic to display user information
}
class PostListWidget extends StatelessWidget {
// Logic to display a list of posts
}
Open/Closed Principle(OCP)
Ky parim inkurajon zgjerimin e funksionalitetit duke shtuar kod të ri në vend të modifikimit të kodit ekzistues.
Shembull: Ndërtoni një miniaplikacion për të shfaqur lloje të ndryshme produktesh në një aplikacion të tregtisë elektronike.
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)
Ky parim pohon se objektet e një klase të derivuar duhet të jenë të zëvendësueshme për objektet e klasës bazë pa ndikuar në korrektësinë e programit.
Shembull: Ndërtoni një miniaplikacion për të menaxhuar format gjeometrike.
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)
Ky parim këshillon ndarjen e ndërfaqeve në më të vogla për të shmangur detyrimin e klasave ose miniaplikacioneve për të zbatuar metoda që nuk u nevojiten.
Shembull: Ndërfaqet për përditësimin dhe shfaqjen e të dhënave.
abstract class Updateable {
void update();
}
abstract class Displayable {
void display();
}
Dependency Inversion Principle(DIP)
Ky parim sugjeron përdorimin e injektimit të varësisë për të menaxhuar varësitë.
Shembull: Përdorni injeksionin e varësisë për të menaxhuar varësitë në miniaplikacione.
class OrderProcessor {
final DBConnection _dbConnection;
final EmailService _emailService;
OrderProcessor(this._dbConnection, this._emailService);
}
Mos harroni se zbatimi i SOLID parimeve në Flutter duhet të bëhet në mënyrë fleksibël bazuar në qëllimin specifik të projektit tuaj dhe të kuptuarit tuaj të SOLID dhe Flutter.