Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update README.md #3

Merged
merged 1 commit into from
Jan 24, 2021
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,6 @@ Every design pattern has a corresponding .NET 5.0 console application.
| [Observer](https://github.com/wesdoyle/design-patterns-explained-with-food/tree/main/BehavioralPatterns/Observer) | Behavioral | [Diet Plan Tracking App](https://github.com/wesdoyle/design-patterns-explained-with-food/tree/main/ExamplePrograms/BehavioralExamples/DietPlanTracker) | We just launched our diet plan tracking app, and our users are constantly refining their profiles with their new weight, exercise goals, and photos. Every time the profiles get updated, we need to kick off other processes to fulfill many different features of our service. We tried polling for changes, but that's getting too expensive, and we're missing updates between intervals. Let's switch from a "pull" to a "push" design using the Observer pattern, so all of our dependent services can subscribe to the profile change event. |
| [State](https://github.com/wesdoyle/design-patterns-explained-with-food/tree/main/BehavioralPatterns/State) | Behavioral | [Cafe Rewards Program](https://github.com/wesdoyle/design-patterns-explained-with-food/tree/main/ExamplePrograms/BehavioralExamples/RewardsProgram) | Our family coffee shop offers a tiered rewards for frequent patrons. The more points a customer earns, the higher their tier. We want to check and adjust customer tiers with each purpose, so we'll implement a State Pattern so that the Rewards Evaluator behaves according to the Rewards Tier for a customer. |
| [Strategy](https://github.com/wesdoyle/design-patterns-explained-with-food/tree/main/BehavioralPatterns/Strategy) | Behavioral | [Restaurant Menu Changer](https://github.com/wesdoyle/design-patterns-explained-with-food/tree/main/ExamplePrograms/BehavioralExamples/MenuChanger) | We run a restaurant that displays a menu that changes throughout the day. We have different processes that go into making breakfast, lunch, and dinner menus, but higher-level processes remain the same. We cook and serve food at all hours, but the strategy for getting that done varies depending on the circumstance. We also want to easily be able to generate menus for higher or lower price ranges at different locations without duplicating code or cluttering high-level objects with conditional logic. We can rely on the benefits of composition over inheritance and implement the Strategy Pattern to keep our code a bit cleaner. |
| [Template Method](https://github.com/wesdoyle/design-patterns-explained-with-food/tree/main/BehavioralPatterns/TemplateMethod) | Behavioral | [Cookbook Printer](https://github.com/wesdoyle/design-patterns-explained-with-food/tree/main/ExamplePrograms/BehavioralExamples/CookbookPrinter) | We run a cookbook printing business for self-published chefs. Much of the process used to print the recpies in our cookbooks is exactly the same, but often differs slightly depending on the recipe. We use a template method with default behavior and virtual behavior overridden (either forcibly or optionally) by concrete recipes using inheritance. |
| [Template Method](https://github.com/wesdoyle/design-patterns-explained-with-food/tree/main/BehavioralPatterns/TemplateMethod) | Behavioral | [Cookbook Printer](https://github.com/wesdoyle/design-patterns-explained-with-food/tree/main/ExamplePrograms/BehavioralExamples/CookbookPrinter) | We run a cookbook printing business for self-published chefs. Much of the process used to print the recipes in our cookbooks is exactly the same, but often differs slightly depending on the recipe. We use a template method with default behavior and virtual behavior overridden (either forcibly or optionally) by concrete recipes using inheritance. |
| [Visitor](https://github.com/wesdoyle/design-patterns-explained-with-food/tree/main/BehavioralPatterns/Visitor) | Behavioral | [Farmer's Market Research](https://github.com/wesdoyle/design-patterns-explained-with-food/tree/main/ExamplePrograms/BehavioralExamples/FarmersMarketResearch) | We work for a company that provides sales and marketing reports for regional Farmer's Markets. Different Farmer's Markets and their vendors have their own logic for generating data we can use for our reports, but we need to be able to generate our reports without significantly modifying any of the existing data-producing classes. We instead make them 'visitable' by our own classes, which can in turn use them as needed to generate custom reports for sales and marketing teams. |