Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-other / 2017-09

Object Pascal Interface Delegation, but in Java

6 messages · 2 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Graeme Geldenhuys

Hi,

Does anybody familiar with Object Pascal and Java know if Java supports something similar to Object Pascal's Interface Delegation "implements syntax" functionality?

Regards,
Graeme

Reply by email

Graeme Geldenhuys
to Marco van de Voort
Marco van de Voort wrote
That is often called delegation, and if you search for java and delegation, it seems not (which is not THAT surprising IMHO):

Thanks Marco. So it is actually similar to Object Pascal where you use object composition, but with Object Pascal's "implements" keyboard the interface is automatic in the new class's interface. Where-as with Java you have to define the interface and then delegate the calls to the composition object. I'm sure Eclipse must have that code-generation functionality built-in or an add-on that can do that.

So Object Pascal is just a bit more convenient, but the end-result (functionality) is the same in.

Thanks again for your input.

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

Reply by email

Graeme Geldenhuys
to Graeme Geldenhuys
Graeme Geldenhuys wrote
I'm sure Eclipse must have that code-generation functionality built-in or an add-on that can do that.

And my guess was correct. :) In Eclipse select "Source -> Generate Delegate Methods". Select the field variable that will do the delegation. Eclipse fully implements all (or selected) methods of delegate member as delegate methods.

Regards,
Graeme

Reply by email

Marco van de Voort
to Graeme Geldenhuys: Thanks Marco. So it is actually similar to Object Pascal where you use object…

In our previous episode, Graeme Geldenhuys said:

Show quoted text 12 lines
> That is often called delegation, and if you search for java and delegation, > it seems not (which is not THAT surprising IMHO): Thanks Marco. So it is actually similar to Object Pascal where you use object composition, but with Object Pascal's "implements" keyboard the interface is automatic in the new class's interface. Where-as with Java you have to define the interface and then delegate the calls to the composition object. I'm sure Eclipse must have that code-generation functionality built-in or an add-on that can do that. So Object Pascal is just a bit more convenient, but the end-result (functionality) is the same in.

Well, with Pascal's syntax you could link through VMT fragments, without actually bouncing through additional code.

And you don't risk forgetting adding a method to existing classes if you add one to the interface, always a risk with manual workarounds like the codegeneration tools that assume everything is designed at once top-down and only then implemented.

Reply by email

Graeme Geldenhuys
to Marco van de Voort
Marco van de Voort wrote
And you don't risk forgetting adding a method to existing classes

Java will give a compilation error if you do, so nothing to worry about there.

always a risk with manual workarounds like the codegeneration tools that assume everything is designed at once top-down and only then implemented.

Eclipse allows you to run the "wizard" multiple times and will add and remove code depending on what you ticked and unticked. Eclipse's code generation is very impressive.

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

Reply by email