Provide answers to the following questions.
To answer the questions:
a) Read widely.
b) Provide detailed explanations in your own words with reference to the work you have done in this unit.
c) Insert references to views you have gained though reading appropriate sources
d) Where appropriate you may includeclass diagrams, code examples and images to enhance your answer.
Discussion is allowed with other students but the write up and design must be entirely your own work and should not be shared with others.
Explanations must be in the correct context, i.e. the domain of Object Oriented Programming.
1.
1.1. Describe the Intent of Singleton design pattern.
1.2. Provide an application (with justification) ofSingleton in Project 2/3 and show how it is implemented referring to actual code.
1.3. Discuss the problem of sub classing with Singleton.
2. For the following question refer to specification of Project 2.
In order to provide better services to clients and boost their sales, the vehicle hiring company now providesthe ability to make special types of reservations such as:
- Reservations with extra equipment (extras may include travel accessories such as Baby/ booster seat, GPS, E-tag etc.)
- Reservations with insurance covers (which covers the excess amount in the case of accidents, damages etc.)
It should be possible to make basic reservations (which contains Full Tank Fuel only), as well as mix the above features and make special featured reservations based on customer preference.
You must also anticipate future additions to these extra features and design your system to support enhancedresponsibilities to be added to a basic reservation object,without major changes to the existing classes in the system.
Assume that the following design decisions are made for you:
- The current Reservation class represents a basic reservation that simply provides a vehicle with full tank fuel.
- It is decided to use the Decorator design pattern to add various features to a basic reservation. Apartialclass diagram is provided belowto help you get started withapplying the Decorator design pattern.
- In the below design, addFeatures() method, adds features to a reservation object. (When addFeatures() is calledon a basic reservation object, ‘Full Tank Fuel' will be added to the reservation).
2.1. Discuss how the Decorator pattern observes the Open for extension but Closed for modification principle.
2.2. You are required to use the above assumptions and complete the given class diagram by applying the Decorator design pattern to meet the requirements of the above scenario (to accommodate current and futureadditions for a basic reservation).
- Include a detailed UML class diagram (with required classes/ interfaces, methods, relationships, access modifiers etc.)that shows application of Decorator.
- Your design must be supported with a detailed explanation of how the Decorator pattern work (show actual code where appropriate)
2.3. The extended functionality mentioned above can be achieved using static inheritance (sub classing) as well. In view of the above scenario, discuss why decorator pattern is better than static inheritance.
3.
3.1. Explain how observer design pattern work referring to its class structure and relating an example you have learnt (Java related) in this unit.
3.2. Compare and contrast the two methods for propagating data to observers with the Observer design pattern.
4.
4.1. Discuss an application of Chain of Responsibility design pattern referring to something (Java related) you have learnt in this unit.