Results 1 to 2 of 2

Thread: Class.Create in parameter functie/procedure doorgeven?

  1. #1
    TDigitalTrain user Hans Brenkman's Avatar
    Join Date
    Mar 2002
    Location
    Weert
    Posts
    1,861

    Class.Create in parameter functie/procedure doorgeven?

    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 );
      ...
    Testen kan niet de afwezigheid van fouten aantonen, slechts de aanwezigheid van gevonden fouten.

    Het is verdacht als een nieuw ontwikkeld programma direct lijkt te werken: waarschijnlijk neutraliseren twee ontwerpfouten elkaar.

  2. #2
    TDigitalTrain user Hans Brenkman's Avatar
    Join Date
    Mar 2002
    Location
    Weert
    Posts
    1,861
    Ik hou de code toch maar bij elkaar, lijkt me bij nader inzien logischer ;-)

    Dus:

    Code:
    var
      LTask: ITaskHV;
    begin
      LTask := TTaskGoogleReviews.Create;
      try
        StartTask( LTask );
      except
        ...
    Testen kan niet de afwezigheid van fouten aantonen, slechts de aanwezigheid van gevonden fouten.

    Het is verdacht als een nieuw ontwikkeld programma direct lijkt te werken: waarschijnlijk neutraliseren twee ontwerpfouten elkaar.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •