[fpc-pascal] How to have smaller units
Vern
vmst at golden.net
Sun Nov 30 16:05:19 CET 2025
Well said Giuliano !
Regards
Vern
On 2025-11-30 07:49, Giuliano Colla via fpc-pascal wrote:
> Hi,
>
> IMHO your basic problem is that you are trying to use objects in a way
> which contradict the basic object concept. The basic concept is to
> expose an interface and hide the implementation. Higher level code
> should be able to use objects without caring of implementation.
> Private object members are just private, implementation dependent, and
> therefore should not be accessible. If they are, you are making your
> high level code dependent from object implementation, which is wrong.
> If for some reasons you cannot rearrange your code in such a way as to
> be coherent with object philosophy, that means that you should not use
> objects. You're not obliged to.
> An object is nothing else but a data structure, which includes in
> addition the procedures to deal with the data.
> But you may write just data structures and procedures separately, and
> make whatever you need be accessible form whatever else you need. And
> if you don't want end users have the same rights, you just use an
> interface. Your code will be loaded at run time, and end users will
> only be able to access what the interface exposes.
> That is the trick used by Lazarus, whose high level objects are
> implemented in a totally different way depending on the selected
> widgetset.
> Just my two cents.
>
> Giuliano
>
> Il 28/11/25 22:58, Amir via fpc-pascal ha scritto:
>> Hi,
>>
>> One of the main thing bothering me while developing projects in
>> Pascal is that my units are getting huge in size! The main reason is
>> that the nice property that the classes could access each other
>> private members if they are defined in the same unit motivates/forces
>> me to define a lot of classes in the same unit. Then, all the
>> functions/procedures implementation must go into the same unit. I
>> know I can use inc file but I do not like it! The other option is to
>> use "Cracker" pattern, in Delphi, which is fine but seems like a hack!
>>
>> In C++, the concept of header files vs c++ files is helpful. In
>> Golang, one could implement the functions for a class in several
>> files, as long as they are in the same directory (namespace).
>>
>> Wondering if there is a solution for this in Object-Pascal?
>>
>> Best,
>> Amir
>>
>>
>> _______________________________________________
>> fpc-pascal maillist - fpc-pascal at lists.freepascal.org
>> https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
>
More information about the fpc-pascal
mailing list