A4: Design Pattern Example #
Deadline: Mar 20, 11:59pm Eastern Time
Requirements #
We will cover several design patterns in this course. This assignment is designed to evaluate if you have understood the design patterns. This assignment requires you to choose one design pattern from the following list, and describe an example of how the pattern has been / could be applied in a software system.
List of design patterns allowed for this assignment:
- Structural patterns: Adapter, Composite, Decorator, Facade, Bridge, Flyweight, Proxy
- Behavioral patterns: Observer, Strategy, Template Method, Iterator, State, Chain of Responsibility, Command, Mediator, Memento
- Creational patterns: Factory Method, Abstract Factory, Builder, Prototype, Object Pool
The software system in your example can be:
- your team’s project for this course, if multiple teammates choose this option, each teammate should select a different design pattern to describe;
- an open-source software project whose source code is available online (e.g., GitHub/GitLab/Bitbucket);
- a software project that you have worked on in the past (e.g., in one of your previous courses); if it is a collaboration project, please make sure to obtain permission from your collaborators to use the code in this assignment.
Please include one of the following in your report for me to access the code of the software system:
- a link pointing to the online repository of the software system (please use a permanent link to the relevant directory and exact commit);
- the code snippets relevant to the design pattern you are describing, include in the appendix of the report (not counted towards the page limit).
Your example can be:
- perspective view: the system is currently not using the design pattern you are describing, and could benefit from it.
- descriptive view: the system is already using the design pattern you are describing.
Your report should be a PDF document. Formatting requirements: 1–2 pages (including the figures, but excluding acknowledgements/references/appendices); letter size; main text font size should be at least 11pt.
The report should include the following parts:
- Introduce the example you chose;
- Describe which design pattern you selected, and how the pattern has been / could be used:
- Perspective view: how the pattern can be applied, and how the system could benefit from it?
- Descriptive view: how the pattern is being used, and what could happen if the pattern was not there?
- What kinds of future changes are enabled by the pattern?
Notes:
- You can use any material from books or online in creating your example but please cite your sources.
- This is an individual assignment. Please do not collaborate with your teammates on this assignment.
Submission #
Submit the PDF on Learn > Submit > Dropbox > A4: Design Pattern Example.