On 12/3/06, Al Boldi <[EMAIL PROTECTED]> wrote:
Design Patterns won't help you introduce flexibility, they only help you put
structure into your design. So the key here is abstraction rather than
patterns. TObject is a great example of abstraction to yield flexibility.
Not that this is the mailing list to discuss design patterns, but I
totally disagree with you statement about flexibility! Design
Patterns add flexibility and structure - obviously dependent on what
design patterns you use.
A few simple examples (only looking at Behavioral Patterns):
Iterator and Visitor:
The Visitor lets you apply some action to a object, combined with the
Iterator, you can run through a hierarchy of objects applying that
action. No need for the Visitor to know the inner details of the
hierarchy. That's flexible! For excellent examples of that, have a
look at the tiOPF Framework. tiOPF is built on this principal.
Mediator and Observer:
Combine those as I have done in the Model-GUI-Mediator and you can
make any Standard GUI component object-aware. Those mediator can be
reused on multiple forms without rewriting any code, compared to the
standard Delphi way one event handlers are writting inside forms and
have to be duplicated on every other form.
State pattern:
Write a CSV or XML parser using a State Machine. It is very flexible
and allows you to extend it, hook up event handlers while the parser
is in different states, etc. Again very flexible. I have posted my
CSV State Machine a few months back in the FPC mailing list.
The list goes on, but I think you get my point... :-) And again, I
haven't even touched on Creational or Structural Patterns.
--
Graeme Geldenhuys
There's no place like S34° 03.168' E018° 49.342'
_________________________________________________________________
To unsubscribe: mail [EMAIL PROTECTED] with
"unsubscribe" as the Subject
archives at http://www.lazarus.freepascal.org/mailarchives