[fpc-pascal] Traits Proposal
Martin Frb
lazarus at mfriebe.de
Thu Feb 11 05:05:07 CET 2021
On 11/02/2021 04:20, Ryan Joseph via fpc-pascal wrote:
>
>> On Feb 10, 2021, at 7:47 PM, Martin Frb via fpc-pascal <fpc-pascal at lists.freepascal.org> wrote:
>>
>> I understand it is for conflict resolution only. But see my example => as soon as you need to repeat a trait with just a change in name, you always need conflict resolution.
> Please post the code snippet again. I'm not sure I understand what you're saying.
TEmployeList = trait
function FindByUnallocateWorkTime: TEmploye;
// other functions/members
end;
TCompany = class
end;
Now the company could have Engineers and Designers. It needs to lists....
But the trait can obviously only be added once.
Yet no-one wants to copy and paste the trait to create a 2nd verson
Maybe Something like (aliasing / no need to copy implementation)
TDesignerList = trait(TEmployeList)
function FindDesigerByUnallocateWorkTime: TEmploye; aliases
FindByUnallocateWorkTime; // no body /just a name replacement
// and the others
end;
===>
TCompany = class
_TraitDesigner: TDesignerList ;
_TraitEngeneers: TEmployeList;
end;
This is clearly something that can be done later. **IF** the design is
chosen to allow for it.
More information about the fpc-pascal
mailing list