Design patterns

Here is my presentation for the workshop at CodeGym today about Design patterns. One of the biggest issue in training design patterns is the trainees don’t know how to apply them together in a single real world problem. I tried to create a real world problem and introduced a simple way to get it solved by combining some design patterns.

KFC. Order system

KFC is very famous fastfood brand, they have many franchises in various places that share the same hotline, menu.

When users open the menu on KFC website, they see the single menu, choose and order food by calling to the single hotline. A order center (OC) receives the order and notifies to the appropriate store by a specific criteria (now is location and can be changed in the future). A store can answer their possibility to take this order (they need to cook and deliver it on time). If a store takes this order, the process ends; otherwise, the OC will find another one.

To process a order, a store has a recipient who receives the order from OC, forwards it to the kitchen, finds the right delivery man and updates the order basing on the information from delivery man such as payment, status (accepted or declined), customer feedback… to OC. So OC has real time data of every orders but doesn’t have order’s internal note that works within the store.

When OC gets the order information from customer, they may get the extra information in some categories like food change, delivery time, special notes… If customer calls to OC to cancel the order, OC can directly cancel it by updating the order status in taken store.

Design the system by design patterns.

 3,547 total views,  4 views today

Similar Articles

Most Popular

Lập trình viên: Gắn kết & chia tay

Có nhiều LTV tỏ ra rất chuyên nghiệp trong buổi phỏng vấn, song tính chuyên nghiệp này không được duy trì những ngày sau...

Lập trình viên: Làm vì đam mê hay tiền?

Đến đây, có một câu hỏi  cho mọi ngành nghề: làm vì đam mê hay vì tiền? Đây không phải là một câu hỏi...

Authentication & WebView & React Native

You have an idea. You already had a responsive web app, it works well for mobile. It leads you to the thought of having...