Results 1 to 4 of 4

Thread: Create vs AfterConstruction

  1. #1

    Create vs AfterConstruction

    Hallo hallo,

    De laatste tijd ben ik een paar Delphi boeken aan het lezen waarin meerder keren AfterConstruction voorkomt. Nu begrijp ik op zich wel wat het doet alleen is het mij niet helemaal duidelijk waar ik het moet plaatsen. Ik dacht in eerste instantie dat het gebruikt werd voor een specifiek geval, maar na wat andere voorbeelden zag ik dat het ook gebruikt werd voor zaken die ik normaal gesproken in de Constructor zou zetten. Mijn vraag:

    Welke code zet je eigenlijk in de Constructor en welke in de AfterConstruction?

    Bij voorbaat dank!

  2. #2
    After construction wordt aangeroepen na de constructor. Dit gebeurt ook impliciet, dus dat is anders dan de Create, die je zelf aanroept. Voor specifieke gevallen kan dat nuttig zijn, omdat je weet dat het er altijd na gebeurt, en de code in Create dus altijd al uitgevoerd is. Dat betekent dus dat bijvoorbeeld een form al geladen is (controls aangemaakt o.b.v. de DFM resource), op het moment dat AfterConstruction het OnCreate event triggert.

    Een ander voordeel is dat het altijd aangeroepen wordt en je er maar één versie van hebt. Van Create kan je meedere overloads of reintroduces hebben. Ik gebruik zelf AfterConstruction i.c.m. dependency injection om naderhand te controleren of al mijn dependencies inderdaad zijn toegewezen. Dat zou ik in de constructor zelf kunnen doen, maar door omstandigheden kan het voorkomen dat de dependency injection container de verkeerde constructor vindt. Checks uitvoeren in de constructor heeft dan geen zin, en AfterConstruction is een prima plaats om die checks dan te doen.
    1+1=b

  3. #3
    Voor specifieke gevallen kan dat nuttig zijn
    Ik kreeg de indruk dat het ook gebruikt werd om "cleancode" te schrijven en de code in je constructor te minimaliseren, maar als ik je goed begrijp is dat volgens jou niet zo.

    p.s. gebruik je toevallig Spring4D

  4. #4
    Lijkt me niet. AfterConstruction wordt altijd automatisch aangeroepen aan het eind van je constructor, en voor de structuur van de rest van je applicatie maakt het dus niet uit ofje code in de Create method staat of in de AfterConstruction method.

    Maar ik weet natuurlijk niet precies wat je hebt gelezen, als je een specifiek citaat/voorbeeld hebt, wil ik daar natuurlijk best m'n mening over geven.

    Ja, Spring4D.
    1+1=b

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
  •