Hi
Ik heb meerdere soortgelijke parent-classen welke elk opgebouwd zijn uit een class en een interface type ITaskHV bijvoorbeeld:
Code:
TTaskGoogleReviews = class(TTaskBasis, ITaskHV )
In een procedure wil ik die parent-classen gebruiken om diverse TTask te starten. Die functie verwacht, zoals ik die gedefinieerd heb, een class als interface:
Code:
procedure StartTask( ATask: ITaskHV );
Dus ik roep die procedure aan met:
Code:
StartTask( TTaskGoogleReviews.Create );
Op zich werkt dit prima, in de procedure StartTask controleer ik of er een instantie van de class TTaskGoogleReviews bestaat en dan kan vervolgens een "standaard" procedure van de TTaskGoogleReviews uitgevoerd worden. In iedere class heb ik een procedure RunTheTask die dan voor elke task iets specifieks doet.
Mijn vraag: is deze aanroep geoorloofd (functioneel dus wel) of is onderstaande netter en beter:
Code:
var
LTask: ITaskHV;
begin
LTask := TTaskGoogleReviews.Create;
StartTask( LTask );
...
Bookmarks