├── .gitignore ├── .idea ├── .gitignore ├── libraries │ └── Dart_SDK.xml ├── misc.xml ├── modules.xml └── vcs.xml ├── CHANGELOG.md ├── LICENSE ├── README.md ├── analysis_options.yaml ├── bin ├── 1-creational_patterns │ ├── 1-singleton │ │ ├── singletone.dart │ │ └── singletone_main.dart │ ├── 2-prototype │ │ ├── 1-prototype.dart │ │ ├── 2-temp_employee.dart │ │ ├── address.dart │ │ └── prototype_main.dart │ ├── 3-builder │ │ ├── 1-product.dart │ │ ├── 2-builder.dart │ │ ├── 3-car.dart │ │ ├── 4-motor_cycle.dart │ │ ├── 5-director.dart │ │ └── builder_main.dart │ ├── 4-factory_method │ │ ├── 1-bank_interface.dart │ │ ├── 2-bank_a.dart │ │ ├── 3-bank_b.dart │ │ ├── 4-bank_factory_interface.dart │ │ ├── 5-bank_factory.dart │ │ └── factory_main.dart │ └── 5-abstract_factory │ │ ├── 1-bank │ │ ├── 1-bank_interface.dart │ │ ├── 2-bank_a.dart │ │ └── 3-bank_b.dart │ │ ├── 2-payment │ │ ├── 1-payment_interface.dart │ │ ├── 2-visa.dart │ │ └── 3-master_card.dart │ │ ├── 3-bank_factory_interface.dart │ │ ├── 4-bank_factory.dart │ │ └── abstract_factory_main.dart └── 2-structural_patterns │ ├── 1-proxy │ ├── 1-i_sms_service.dart │ ├── 2-sms_service.dart │ ├── 3-proxy_sms.dart │ └── proxy_main.dart │ ├── 2-decorator │ ├── 1-abstract_decorator.dart │ ├── 2-notificaion_email_decorator.dart │ └── decorator_main.dart │ ├── 3-adapter │ ├── 1-employee.dart │ ├── 2-machine_operator.dart │ ├── 3-salary_calculator.dart │ ├── 4-salary_adapter.dart │ └── adapter_main.dart │ ├── 4-facade │ ├── 1-basket_item.dart │ ├── 2-shopping_basket.dart │ ├── 3-inventory.dart │ ├── 4-inventory_order.dart │ ├── 5-purchase_invoice.dart │ ├── 6-payment_processor.dart │ ├── 7-sms_notification.dart │ ├── 9-purchase_order.dart │ └── facade_main.dart │ ├── 5-flyweight │ ├── 1-i_discount_calc.dart │ ├── 2-day_discount.dart │ ├── 3-item_discount.dart │ ├── 4-discount_factory.dart │ └── flyweight_main.dart │ └── 6-composite │ ├── 1-arithmetic_exp.dart │ ├── 2-numeric_operand.dart │ ├── 3-composite_operand.dart │ └── composite_main.dart ├── design_patterns_dart.iml ├── lib └── design_patterns_dart.dart ├── pubspec.lock ├── pubspec.yaml └── test └── design_patterns_dart_test.dart /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/.gitignore -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /.idea/libraries/Dart_SDK.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/.idea/libraries/Dart_SDK.xml -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/.idea/misc.xml -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/.idea/modules.xml -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/.idea/vcs.xml -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## 1.0.0 2 | 3 | - Initial version. 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/README.md -------------------------------------------------------------------------------- /analysis_options.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/analysis_options.yaml -------------------------------------------------------------------------------- /bin/1-creational_patterns/1-singleton/singletone.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/1-creational_patterns/1-singleton/singletone.dart -------------------------------------------------------------------------------- /bin/1-creational_patterns/1-singleton/singletone_main.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/1-creational_patterns/1-singleton/singletone_main.dart -------------------------------------------------------------------------------- /bin/1-creational_patterns/2-prototype/1-prototype.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/1-creational_patterns/2-prototype/1-prototype.dart -------------------------------------------------------------------------------- /bin/1-creational_patterns/2-prototype/2-temp_employee.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/1-creational_patterns/2-prototype/2-temp_employee.dart -------------------------------------------------------------------------------- /bin/1-creational_patterns/2-prototype/address.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/1-creational_patterns/2-prototype/address.dart -------------------------------------------------------------------------------- /bin/1-creational_patterns/2-prototype/prototype_main.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/1-creational_patterns/2-prototype/prototype_main.dart -------------------------------------------------------------------------------- /bin/1-creational_patterns/3-builder/1-product.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/1-creational_patterns/3-builder/1-product.dart -------------------------------------------------------------------------------- /bin/1-creational_patterns/3-builder/2-builder.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/1-creational_patterns/3-builder/2-builder.dart -------------------------------------------------------------------------------- /bin/1-creational_patterns/3-builder/3-car.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/1-creational_patterns/3-builder/3-car.dart -------------------------------------------------------------------------------- /bin/1-creational_patterns/3-builder/4-motor_cycle.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/1-creational_patterns/3-builder/4-motor_cycle.dart -------------------------------------------------------------------------------- /bin/1-creational_patterns/3-builder/5-director.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/1-creational_patterns/3-builder/5-director.dart -------------------------------------------------------------------------------- /bin/1-creational_patterns/3-builder/builder_main.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/1-creational_patterns/3-builder/builder_main.dart -------------------------------------------------------------------------------- /bin/1-creational_patterns/4-factory_method/1-bank_interface.dart: -------------------------------------------------------------------------------- 1 | abstract class BankInterface { 2 | String withdraw(); 3 | } 4 | -------------------------------------------------------------------------------- /bin/1-creational_patterns/4-factory_method/2-bank_a.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/1-creational_patterns/4-factory_method/2-bank_a.dart -------------------------------------------------------------------------------- /bin/1-creational_patterns/4-factory_method/3-bank_b.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/1-creational_patterns/4-factory_method/3-bank_b.dart -------------------------------------------------------------------------------- /bin/1-creational_patterns/4-factory_method/4-bank_factory_interface.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/1-creational_patterns/4-factory_method/4-bank_factory_interface.dart -------------------------------------------------------------------------------- /bin/1-creational_patterns/4-factory_method/5-bank_factory.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/1-creational_patterns/4-factory_method/5-bank_factory.dart -------------------------------------------------------------------------------- /bin/1-creational_patterns/4-factory_method/factory_main.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/1-creational_patterns/4-factory_method/factory_main.dart -------------------------------------------------------------------------------- /bin/1-creational_patterns/5-abstract_factory/1-bank/1-bank_interface.dart: -------------------------------------------------------------------------------- 1 | abstract class BankInterface { 2 | String withdraw(); 3 | } 4 | -------------------------------------------------------------------------------- /bin/1-creational_patterns/5-abstract_factory/1-bank/2-bank_a.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/1-creational_patterns/5-abstract_factory/1-bank/2-bank_a.dart -------------------------------------------------------------------------------- /bin/1-creational_patterns/5-abstract_factory/1-bank/3-bank_b.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/1-creational_patterns/5-abstract_factory/1-bank/3-bank_b.dart -------------------------------------------------------------------------------- /bin/1-creational_patterns/5-abstract_factory/2-payment/1-payment_interface.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/1-creational_patterns/5-abstract_factory/2-payment/1-payment_interface.dart -------------------------------------------------------------------------------- /bin/1-creational_patterns/5-abstract_factory/2-payment/2-visa.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/1-creational_patterns/5-abstract_factory/2-payment/2-visa.dart -------------------------------------------------------------------------------- /bin/1-creational_patterns/5-abstract_factory/2-payment/3-master_card.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/1-creational_patterns/5-abstract_factory/2-payment/3-master_card.dart -------------------------------------------------------------------------------- /bin/1-creational_patterns/5-abstract_factory/3-bank_factory_interface.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/1-creational_patterns/5-abstract_factory/3-bank_factory_interface.dart -------------------------------------------------------------------------------- /bin/1-creational_patterns/5-abstract_factory/4-bank_factory.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/1-creational_patterns/5-abstract_factory/4-bank_factory.dart -------------------------------------------------------------------------------- /bin/1-creational_patterns/5-abstract_factory/abstract_factory_main.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/1-creational_patterns/5-abstract_factory/abstract_factory_main.dart -------------------------------------------------------------------------------- /bin/2-structural_patterns/1-proxy/1-i_sms_service.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/2-structural_patterns/1-proxy/1-i_sms_service.dart -------------------------------------------------------------------------------- /bin/2-structural_patterns/1-proxy/2-sms_service.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/2-structural_patterns/1-proxy/2-sms_service.dart -------------------------------------------------------------------------------- /bin/2-structural_patterns/1-proxy/3-proxy_sms.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/2-structural_patterns/1-proxy/3-proxy_sms.dart -------------------------------------------------------------------------------- /bin/2-structural_patterns/1-proxy/proxy_main.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/2-structural_patterns/1-proxy/proxy_main.dart -------------------------------------------------------------------------------- /bin/2-structural_patterns/2-decorator/1-abstract_decorator.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/2-structural_patterns/2-decorator/1-abstract_decorator.dart -------------------------------------------------------------------------------- /bin/2-structural_patterns/2-decorator/2-notificaion_email_decorator.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/2-structural_patterns/2-decorator/2-notificaion_email_decorator.dart -------------------------------------------------------------------------------- /bin/2-structural_patterns/2-decorator/decorator_main.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/2-structural_patterns/2-decorator/decorator_main.dart -------------------------------------------------------------------------------- /bin/2-structural_patterns/3-adapter/1-employee.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/2-structural_patterns/3-adapter/1-employee.dart -------------------------------------------------------------------------------- /bin/2-structural_patterns/3-adapter/2-machine_operator.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/2-structural_patterns/3-adapter/2-machine_operator.dart -------------------------------------------------------------------------------- /bin/2-structural_patterns/3-adapter/3-salary_calculator.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/2-structural_patterns/3-adapter/3-salary_calculator.dart -------------------------------------------------------------------------------- /bin/2-structural_patterns/3-adapter/4-salary_adapter.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/2-structural_patterns/3-adapter/4-salary_adapter.dart -------------------------------------------------------------------------------- /bin/2-structural_patterns/3-adapter/adapter_main.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/2-structural_patterns/3-adapter/adapter_main.dart -------------------------------------------------------------------------------- /bin/2-structural_patterns/4-facade/1-basket_item.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/2-structural_patterns/4-facade/1-basket_item.dart -------------------------------------------------------------------------------- /bin/2-structural_patterns/4-facade/2-shopping_basket.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/2-structural_patterns/4-facade/2-shopping_basket.dart -------------------------------------------------------------------------------- /bin/2-structural_patterns/4-facade/3-inventory.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/2-structural_patterns/4-facade/3-inventory.dart -------------------------------------------------------------------------------- /bin/2-structural_patterns/4-facade/4-inventory_order.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/2-structural_patterns/4-facade/4-inventory_order.dart -------------------------------------------------------------------------------- /bin/2-structural_patterns/4-facade/5-purchase_invoice.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/2-structural_patterns/4-facade/5-purchase_invoice.dart -------------------------------------------------------------------------------- /bin/2-structural_patterns/4-facade/6-payment_processor.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/2-structural_patterns/4-facade/6-payment_processor.dart -------------------------------------------------------------------------------- /bin/2-structural_patterns/4-facade/7-sms_notification.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/2-structural_patterns/4-facade/7-sms_notification.dart -------------------------------------------------------------------------------- /bin/2-structural_patterns/4-facade/9-purchase_order.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/2-structural_patterns/4-facade/9-purchase_order.dart -------------------------------------------------------------------------------- /bin/2-structural_patterns/4-facade/facade_main.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/2-structural_patterns/4-facade/facade_main.dart -------------------------------------------------------------------------------- /bin/2-structural_patterns/5-flyweight/1-i_discount_calc.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/2-structural_patterns/5-flyweight/1-i_discount_calc.dart -------------------------------------------------------------------------------- /bin/2-structural_patterns/5-flyweight/2-day_discount.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/2-structural_patterns/5-flyweight/2-day_discount.dart -------------------------------------------------------------------------------- /bin/2-structural_patterns/5-flyweight/3-item_discount.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/2-structural_patterns/5-flyweight/3-item_discount.dart -------------------------------------------------------------------------------- /bin/2-structural_patterns/5-flyweight/4-discount_factory.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/2-structural_patterns/5-flyweight/4-discount_factory.dart -------------------------------------------------------------------------------- /bin/2-structural_patterns/5-flyweight/flyweight_main.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/2-structural_patterns/5-flyweight/flyweight_main.dart -------------------------------------------------------------------------------- /bin/2-structural_patterns/6-composite/1-arithmetic_exp.dart: -------------------------------------------------------------------------------- 1 | abstract class ArithmeticExpression { 2 | double getValue(); 3 | } 4 | -------------------------------------------------------------------------------- /bin/2-structural_patterns/6-composite/2-numeric_operand.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/2-structural_patterns/6-composite/2-numeric_operand.dart -------------------------------------------------------------------------------- /bin/2-structural_patterns/6-composite/3-composite_operand.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/2-structural_patterns/6-composite/3-composite_operand.dart -------------------------------------------------------------------------------- /bin/2-structural_patterns/6-composite/composite_main.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/bin/2-structural_patterns/6-composite/composite_main.dart -------------------------------------------------------------------------------- /design_patterns_dart.iml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/design_patterns_dart.iml -------------------------------------------------------------------------------- /lib/design_patterns_dart.dart: -------------------------------------------------------------------------------- 1 | int calculate() { 2 | return 6 * 7; 3 | } 4 | -------------------------------------------------------------------------------- /pubspec.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/pubspec.lock -------------------------------------------------------------------------------- /pubspec.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/pubspec.yaml -------------------------------------------------------------------------------- /test/design_patterns_dart_test.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinaFaried3/Design-Patterns-Dart/HEAD/test/design_patterns_dart_test.dart --------------------------------------------------------------------------------