Given the below example of a composite pattern: These classes and interfaces are in package P. Create an almost identical package DP where the domain of instances that can be assigned to interface I are decorated instances of the domain of P. (A decorator DL decorates L instances – so whenever an L object is created a DL-decorated L object is returned. Similarly, a decorator DM decorates M instances – so whenever an M object is created, a DM-decorated M object is returned). The ultimate goal is to write an application where packages DP and P can be easily swapped. Now create a framework F that has P and DP as plug-ins so that effectively packages P and DP are easy to swap.
A critical part of any design is clarity and understandability. Hence, you will be graded on the clarity of your project and its ability to work correctly. Sloppy code, documentation, or anything that makes grading or understanding your program difficult will cost you points. Beware, some of these "beauty" points are subjective.
Remember:
No late assignments/submissions will be accepted.