https://github.com/lambiengcode/flutter-pizza-store
Pizza ordering app built with Flutter, demonstrating the Factory design pattern
https://github.com/lambiengcode/flutter-pizza-store
ecommerce firebase flutter food-delivery restaurant
Last synced: 19 days ago
JSON representation
Pizza ordering app built with Flutter, demonstrating the Factory design pattern
- Host: GitHub
- URL: https://github.com/lambiengcode/flutter-pizza-store
- Owner: lambiengcode
- License: mit
- Created: 2021-04-08T12:12:11.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2021-04-20T12:17:18.000Z (about 5 years ago)
- Last Synced: 2026-04-02T20:38:16.702Z (24 days ago)
- Topics: ecommerce, firebase, flutter, food-delivery, restaurant
- Language: Dart
- Homepage:
- Size: 3.89 MB
- Stars: 31
- Watchers: 1
- Forks: 11
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## Flutter Pizza Hut 🍕
### Description:
- 🚀 This is mobile application using Flutter for develop a pizza store
- 🚀 Factory Method
- Create Enum ***product_type.dart*** & ***location_type.dart***
```dart
enum ProductType {
burger,
pizza,
chicken,
chips,
}
enum LocationType {
hanoi,
danang,
hochiminh,
}
```
- Create Abstract Class - ***food.dart***
```dart
import 'package:flutter_pizza_store/src/events/location_event.dart';
import 'package:flutter_pizza_store/src/models/product.dart';
abstract class Food {
void initial() {}
void filterByLocation(LocationType location) {}
List products() {
return [];
}
}
```
- Create Concrete Class - ***burger.dart***, similar with ***pizza.dart, chicken.dart, chips.dart***
```dart
import 'package:flutter_pizza_store/src/events/location_event.dart';
import 'package:flutter_pizza_store/src/events/product_event.dart';
import 'package:flutter_pizza_store/src/models/food.dart';
import 'package:flutter_pizza_store/src/models/product.dart';
import 'package:flutter_pizza_store/src/repository/product_repository.dart';
class Burger implements Food {
List _products = [];
@override
void initial() {
allProducts.forEach((product) {
if (product.type == ProductType.burger) _products.add(product);
});
}
@override
void filterByLocation(LocationType location) {
_products
.where((e) {
return e.location != location;
})
.toList()
.forEach((_products.remove));
}
@override
List products() {
return _products;
}
}
```
- Create Factory Class - ***food_factory.dart***
```dart
import 'package:flutter_pizza_store/src/events/product_event.dart';
import 'package:flutter_pizza_store/src/models/burger.dart';
import 'package:flutter_pizza_store/src/models/chicken.dart';
import 'package:flutter_pizza_store/src/models/chips.dart';
import 'package:flutter_pizza_store/src/models/food.dart';
import 'package:flutter_pizza_store/src/models/pizza.dart';
class FoodFactory {
static Food getFood(ProductType type) {
switch (type) {
case ProductType.burger:
return Burger();
case ProductType.pizza:
return Pizza();
case ProductType.chicken:
return Chicken();
case ProductType.chips:
return Chips();
default:
return Burger();
}
}
}
```
### How I can run it?
- 🚀 Clone this repo
- 🚀 Run below code in terminal of project
```terminal
flutter pub get
flutter run
```
### Screenshots
#### Author: lambiengcode