Design Pattern in Delphi