Overall Architecture
The spreadsheet program is designed around a Spreadsheet class
that defines a spreadsheet's basic behavior. Several types of Spreadsheets,
such as AverageSpreadsheet and SumSpreadsheet, use
its behaviors and only need to extend by knowing how to calculate their
overall values. A LinkedSpreadsheet is a type of
Spreadsheet that links to two (or sometimes more) different
spreadsheets (or particular cells) instead of having its own spreadsheet of
cells. There are several types of LinkedSpreadsheets that know
how to calculate their overall values from the linked spreadsheets. The
human interface component is composed of a simple
SpreadsheetViewContainer which is a
ModelCollectionViewContainer (from Coad and Nicola).