For a demonstration of the bridge pattern, let's look at a simple hierarchy of shape objects. The project is called Bridge and you'll find it in the folder Bridge. The unit Shapes.Abstraction contains the following hierarchy of classes:
type TShape = class end; TRectangle = class(TShape) end; TTriangle = class(TShape) end;
For demonstration purposes, we want to implement support for two very different display types: a Graphical User Interface (GUI) and a console text mode (ASCII). If we don't use the bridge interface, we need to implement four more classes:
type TGUIRectangle = class(TRectangle) end; TASCIIRectangle = class(TRectangle) end; TGUITriangle = class(TTriangle) end; TASCIITriangle = class(TTriangle) end;