[fpc-pascal] Implementing Factory Method with Pascal

Graeme Geldenhuys mailinglists at geldenhuys.co.uk
Sat Nov 28 10:09:38 CET 2015


Hi Anthony,

On 2015-11-28 00:16, Anthony Walter wrote:
> type
>   IBarkable = interface(IInterface)
>   ['{B241068F-2ED9-43C7-066B-778B94CB58F9}']
>     procedure Bark;
>   end;
> ...snip...

That is a much better solution for what Luciano wants to accomplish.


> and later ...
> 
> if Animal is IBarkable then (Animal as IBarkable).Bark;

This is not good usage of Interfaces. Use the interface variable instead.

var
  intf: IBarkable
begin
  if Supports(Animal, IBarbable, intf) then
  begin
    intf.Bark;
    // you can continue here using intf further without casting
  end;



Regards,
  - Graeme -

-- 
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/

My public PGP key:  http://tinyurl.com/graeme-pgp



More information about the fpc-pascal mailing list