Your system design should conform to the Open Closed Principle so that your design should easily
support new functions (e.g. change of name of security) and securities, for example, creation of
BankNote record which is a subclass of Security.
You MUST apply the following design patterns for your new system
● Command pattern to provide the “create”, “display”, “deposit”, “withdraw”, “undo”,
“redo” and “show undo/redo list” functions
● Factory pattern or Abstract Factory Pattern to create different Command objects and
Security objects (e.g. Bond object, Stock object, etc.)
● Memento pattern to provide “Undo” and “Redo” functions