[fpc-pascal] A better way?

Michael Van Canneyt michael at freepascal.org
Thu Apr 14 13:09:34 CEST 2016



On Thu, 14 Apr 2016, Ryan Joseph wrote:

>
>> On Apr 14, 2016, at 5:00 PM, Michael Van Canneyt <michael at freepascal.org> wrote:
>> 
>> You should not need TClassB here. You defeat the point of using an
>> interface.
>
> I’m using the interface for specific communication I want denoted in the
> interface but I’m still typically using properties of the child class in
> addition to the interface.  Offloading all properties to the interface
> would work but it would be making accessing them very cumbersome because
> it requires using Support instead of just accessing them directly.

So, put bluntly, you are unwilling to do things properly, and then complain that the
language does not allow you to do this easily enough ?

No, you need to do things properly.

>
> The interface was probably over complicating the example actually because
> the true problem is having this pattern of a parent->child relationship
> where both classes need to know about each other to some extent but
> putting them in the same unit causes clutter and pollution in other units
> namespaces.  In this example it’s likely that many other units use TClassB
> and it’s not exclusive to TClassA so putting them in the same unit doesn’t
> make sense.

It certainly does make sense, if they are so intertwined.

This is not Java where you must put all classes in a single separate file.

If classes are so intertwined that they need detailed knowledge of each
other's property, put them in 1 unit.

It is as simple as that.

>
> Maybe I’m doing something stupid but other languages have forward declarations so I wonder why Pascal isn’t doing this also since it seems like the obvious solution.

Pascal has forward declarations. But only inside 1 unit.

Michael.


More information about the fpc-pascal mailing list