$29
Description:
You have seen and implemented the Iterator and Observer design patterns in your projects. You have completed homework on the Decorator and Factory design patterns. Now you are going to choose your own design pattern and write a program to illustrate it’s functionality.
Implementation Details:
You will chose one of the following design patterns: Strategy, Proxy or Abstract Factory. Using the Maven project template provided, you will write a program that highlights the functionality of the design pattern you chose. You can not simply copy and paste an example from the web. You must also include a single page, describing how the design pattern works in your program and what the benefits or drawbacks of using it are. Format this page as a PDF.
Test Cases:
You must include a minimum of 10 unit tests in the Homework4Test.java file provided in the Maven template project. These must run with the maven command “test”.
Electronic Submission:
Put the Maven template folder with your files and one page description PDF in a .zip and name it with your netid + Homework4: for example, I would have a submission called mhalle5Homework4.zip, and submit it to the link on Blackboard course website..
CS 342 Homework #4
Assignment Details:
Late work on a homework is NOT ACCEPTED. Anything past the deadline will result in a zero.
We will test all homework on the command line using Maven 3.6.1. You may develop in any IDE you chose but make sure your homework can be run on the command line using Maven commands. Any homework that does not run will result in a zero. If you are unsure about using Maven, come see your TA or Professor.
Unless stated otherwise, all work submitted for grading *must* be done individually. While we encourage you to talk to your peers and learn from them, this interaction must be superficial with regards to all work submitted for grading. This means you *cannot* work in teams, you cannot work side-by-side, you cannot submit someone else’s work (partial or complete) as your own. The University’s policy is available here:
https://dos.uic.edu/conductforstudents.shtml.
In particular, note that you are guilty of academic dishonesty if you extend or receive any kind of unauthorized assistance. Absolutely no transfer of program code between students is permitted (paper or electronic), and you may not solicit code from family, friends, or online forums. Other examples of academic dishonesty include emailing
your program to another student, copying-pasting code from the internet, working in a group on a homework assignment, and allowing a tutor, TA, or another individual to write an answer for you. It is also considered academic dishonesty if you click someone else’s iClicker with the intent of answering for that student, whether for a quiz, exam, or class participation. Academic dishonesty is unacceptable, and penalties range from a letter grade drop to expulsion from the university; cases are handled via the official student conduct process described at https://dos.uic.edu/conductforstudents.shtml.