Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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:

  1. Start by examining the existing ReportHeader Singleton class to understand how it is implemented.

  2. Create a new Singleton class called ReportFooter. This class should be structured similarly to the ReportHeader 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 of ReportFooter, 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 prints footer to the console.

  3. Update the ReportWriter class to demonstrate the use of the new ReportFooter class. After printing the header, it should retrieve the footer using ReportFooter.getInstance() and print it using the printFooter() method.

  4. 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 ReportWriter.

...