On Thu, 14 Apr 2016, Ryan Joseph wrote:


On Apr 14, 2016, at 5:00 PM, Michael Van Canneyt <mich...@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.
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to