Roger said:
Hi
Are there any "rules of thumb" that would help me decide whether to
extend an existing class or use the decorator pattern when adding
functionality to a base class?
Regards
If you have a lot of different types of decoration you want to perform
it it much better to use the decoration pattern. Example a JTable with
three different types of decorations..
public StockMarketOrderDisplay()
{
initialise();
}
private void initialise()
{
contentPane = (JPanel)this.getContentPane();
this.setTitle("Stock Market Order Display");
// Setup Renderers;
registerRendererForClass(String.class);
registerRendererForClass(Number.class);
registerRendererForClass(Double.class);
// put in scrollpane
JScrollPane scrollPane = new JScrollPane();
scrollPane.getViewport().add(table, null);
// Add scrollpane to content pane
contentPane.add(scrollPane);
}
private void registerRendererForClass(Class klass)
{
// Get Default Renderer from the table
DefaultTableCellRenderer defaultRenderer =
(DefaultTableCellRenderer)table
.getDefaultRenderer(klass);
// Wrap the color renderer around the default renderer
TableCellRenderer colorRenderer = new CellColorRenderer(
defaultRenderer, provider);
// Wrap the flash renderer around the colour renderer
TableCellRenderer flashRenderer = new CellFlashColorRenderer(
colorRenderer, flashProvider);
// Register our flash renderer with the table
table.setDefaultRenderer(klass, flashRenderer);
}
--
Thanks in Advance...
IchBin, Pocono Lake, Pa, USA
http://weconsultants.servebeer.com/JHackerAppManager
__________________________________________________________________________
'If there is one, Knowledge is the "Fountain of Youth"'
-William E. Taylor, Regular Guy (1952-)