The manager is only created the first time he gets access and logs in.
Abstract Factory Pattern
This can be used to create the different employees and different visitors.
This is to Sales, Customer service or managers to create 1 or multiple accounts on the fly.
This is displayed in the factories class diagram
Builder Design Pattern
This can be used to create the different types of Piece of art or Processes(Rental, Reservation, Move request)
This is because the creation of piece of art also requires creation of insurance and acquisition object.
The creation of a process also requires the creation of a transaction.
The Builder Pattern covers that. Moreover the steps in creating may change over time.
This is displayed in the builders’ class diagram.
Proxy Pattern
This can be used control access to room and piece of art database
Since those can have different level of security or restriction, this is to verify a certain employee have access to the item.
This is also the case for when visitors are using the Site or UI to look into what is available for tours or event.
This would be reflected everytime there need to be a getArt() or setArt() or getRoom() or setRoom() from database and have the if(valid()) check inside the ProxyResource Class.
Composite Pattern
This can be used for the UI.
Designing it would require having containers like Layouts and non-containers like buttons.
This is to allow a high customizability to the designer and help group elements in our UI into sections based on functionality.
This can be used for the employee organization relationship chart.
This is to show how a manager would have employees under him/her or even other manager which in turn would have they own employees.
This can be simply designed Using the employee class we have and have 2 sub classes Manager and non-manager.