Versions Compared

Key

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

...

The advantages of implementing modules are not limited to external technologies.  Modules may be implemented for functions applicable only to VCL, but may vary based on the environment.  For example, research is being conducted to compare different algorithms which are used to select the image that is loaded on a computer after a reservation is complete.  A module is created for each algorithm, and configuring a managment node to use a certain algoritym is as simple as changing one value in the database.

Advantages

  • Modules make it easier for developers to implement new technologies to be used with VCL easily
  • Core VCL code does not need to be altered in order to support additional technologies or functionality
  • Increased flexibility for different configurations
  • Consistent methods to access data stored in the database
  • Code maintainability is increased because each module focuses on a distinct task and the core code does not need to check for numerous different conditions based on the technology being used

Object Orientation and Inheritance

Object orientation and inheritance are used in the VCL modular framework, allowing modules to access functionality from the classes which they inherit from.  This relieves module developers from having to worry about many underlying details and reduces code duplication.

The following diagram shows how inheritance is organized:
Figure: VCL module inheritance organization

  A few notes about the diagram:

...

  • abstract and concrete classes - abstract are not instantiated
  • classes can be empty, contain no subs, but act as a placeholder in case it's decided later on that a sub would be useful 

Advantages

  • Modules make it easier for developers to implement new technologies to be used with VCL easily
  • Core VCL code does not need to be altered in order to support additional technologies or functionality
  • Increased flexibility for different configurations
  • Consistent methods to access data stored in the database
  • Code maintainability is increased because each module focuses on a distinct task and the core code does not need to check for numerous different conditions based on the technology being used

Explain: 

  • more about benefits of inheritance
  • give OS example and include diagram
    • Windows - Desktop - XP - Vista
    • implement subs as high up as possible so child classes inherit them
    • child classes can override an inherited sub if it doesn't fit its needs
    • use example of firewalls in Windows.  Windows.pm implements a firewall sub which works for everything but Vista.  Vista.pm can implement a sub with the same name and it will override the one in Windows.pm, yet Vista.pm still enjoys everthing else Windows.pm offers.

...