Module 8 Lab - Singleton Pattern Lab
Lab: Enhancing the Report Writer Application
Objective:
In this lab, you will extend the provided Report Writer application which currently includes a Singleton class ReportHeader
for generating report headers. You are to add another Singleton class for generating report footers named ReportFooter
.
Instructions:
Start by examining the existing
ReportHeader
Singleton class to understand how it is implemented.Create a new Singleton class called
ReportFooter
. This class should be structured similarly to theReportHeader
class.It should have a private constructor.
It should have a private static volatile instance of
ReportFooter
.It should have a public static method,
getInstance()
, that returns the instance ofReportFooter
, instantiating it if it is null.It should contain a private String
footer
that is initialized in the constructor with the contents of the footer (for example, "Company Name\nAddress\nEnd of Report\n\n").It should have a
printFooter()
method that printsfooter
to the console.
Update the driver class to demonstrate the use of the new
ReportFooter
class. After printing the header, it should retrieve the footer usingReportFooter.getInstance()
and print it using theprintFooter()
method.Test your application to ensure that it behaves as expected.
Tips:
Remember that the Singleton pattern is used to ensure that a class has only one instance, and to provide a global point of access to it.
Submission:
You should submit your completed Java files for ReportHeader
, ReportFooter
, and Driver
Remember, the goal of this lab is to understand the Singleton pattern and how it can be used to manage global application state. Good luck!
COSC-1437 / ITSE-2457 Computer Science Dept. - Author: Dr. Kevin Roark