Skip to content

Instantly share code, notes, and snippets.

@AbbasHoseini
Last active December 10, 2021 05:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AbbasHoseini/db6691e4908f99d00a6490730bae4ef6 to your computer and use it in GitHub Desktop.
Save AbbasHoseini/db6691e4908f99d00a6490730bae4ef6 to your computer and use it in GitHub Desktop.
class CartModel extends ChangeNotifier {
/// Internal, private state of the cart.=> استیت داخلی، خصوصی سبد خرید
final List<Item> _items = [];
/// An unmodifiable view of the items in the cart. =>موارد غیر قابل تغییر در آیتم های سبدخرید
UnmodifiableListView<Item> get items => UnmodifiableListView(_items);
/// قیمت کلی فعلی همه اقلام -با فرض اینکه هزینه تمام اقلام 42 دلار است
int get totalPrice => _items.length * 42;
/// اضافه کردن آیتم به سبد خرید. این(یعنی پاک کردن همه موارد) تنها راه برای اصلاح از خارج از سبد خرید است.
void add(Item item) {
_items.add(item);
// این فراخوانی به همه ی ویجت هایی که به این مدل گوش میدهند میگویند که دوباره بسازند
notifyListeners();
}
/// پاک کردن تمام موارد در آیتم های سبدخرید
void removeAll() {
_items.clear();
// این فراخوانی به همه ی ویجت هایی که به این مدل گوش میدهند میگویند که دوباره بسازند
notifyListeners();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment