in Delphi, in enkele gevallen, het creëren van een soort interne gevallen als volgt het patroon.De categorieën beschreven voor enkele van de voorschriften en het effect van zelf, effectief uit het gebruik van dit soort, net als voor alle andere programmeur.Het is net als je de computer... Alleen een toetsenbord.Dus, als je de code schreef is een simulatie van je computer, je hoeft alleen maar een voorbeeld van het toetsenbord te verwerken in lezen, schrijven, en controle van de activiteiten, en de controle over de activiteiten, enig kind. En het is zeldzaam, maar er zijn een paar op het internet.Ik zag in het tijdschrift.Maar deze niet in het artikel, met inbegrip van de code van het monster voor de totstandbrenging van een echte interne gevallen, door de "echte" is een voorbeeld van dergelijke zelf de tenuitvoerlegging, in plaats van die taak aan de programmeurs.Ik zag alle artikelen van het gebruik van een programmeur nodig is een speciale manier om de wijze van uitvoering van afzonderlijke, in dit verslag, en je zal zien hoe de totstandbrenging van een echte interne gevallen, met inbegrip van de regels voor de uitvoering van een voorbeeld van de logica.De echte interne gevallen, zoals ik hier een daadwerkelijk verborgen details en het bewustzijn van het kind - programmeurs.De programmeur is ontheven van zijn taak de uitvoering van mode... En dat is prima... Maar misschien nog niet weten van de bijzondere eigenschappen van deze categorie, dit is slecht.Als je niet weet wat het is een enkele soort, zou alle fouten zullen verschijnen.Je was gewaarschuwd.De code schreef,,,,, ons doel is het schrijven van een klasse, kunnen gebruik maken van een dergelijke:,,,,,, S2:VaR testprocedures; S1, tsingleton;,,,,,, S1:= tsingleton. Creëren; S2:= tsingleton. Creëren;,, //- en S1 en S2 2 hier. Doe iets. Vrijheid, vrijheid van -,,.,,,,,,, een einde te maken aan de; (laat ik proberen... Eindelijk blok en andere maatregelen om het kort te houden.),,, ons doel is om de tsingleton gedrag op een manier die S1 en S2 naar hetzelfde doel.Dit is wat we gaan doen:,,,, de eerste keer dat de concretisering van het object (als S1 creëren), om ervoor te zorgen dat, wanneer een andere gecreëerd (S2), de uitvoering van bestaande voorwerpen gebruikt in plaats van een ander te creëren, om schade aan de objecten, dit is niet de laatste keer wordt vernietigd (als S2 worden vrijgelaten, als laatste voorbeeld), de vernietiging van referentie vernietigd worden (wanneer meer dan S1 vrijlating),,,,, de middelen voor het creëren en Delphi in een nieuw object?- dat is het zeker.In de TObject (alle voorwerpen woordspeling} {'), twee methoden kunnen worden gebruikt:,,, functies newInstance:TObject, virtuele;,, programma' s freeinstance, virtuele;,,,, een voorbeeld is verantwoordelijk voor de organisatie van een nieuwe klasse van voorbeelden van toewijzingen en freeinstance is verantwoordelijk voor de vrijlating van geheugen, klas, en deze methode voor de controle van, als de oprichting van het voorwerp, het doel is vernietigd.Als we het herschrijven van deze code kunnen we veranderen de standaard gedrag te werken in een aparte categorie.Niet waar.,,, volgen voorbeelden van een klein trucje.We moeten volgen:,,,, per geval, we hebben deze zaak volgen, hoeveel wordt verwezen, de oprichting van een nieuw doel in niet alleen voorbeelden bestaan, de vernietiging van een object, als laatste verwijzing wordt verwijderd,,,,, de bestaande voorbeelden volgen, zullen we met een van de variabelen.In feite, de variabele zal uiteindelijk worden verklaard als een deel van de uitvoering van een eenheid, dus het is niet echt een van de variabelen.Maar het moet genoeg bereik van alle creëren en op te volgen.We noemen deze variabelen, zodat we weten wat het is. En, voor wat betreft de op hoeveel referentie bestaat, moeten we een andere variabelen.We kunnen in de categorie of het een dergelijke globale.Ik zou kiezen voor het laatste, maar doen wat je denkt dat het beste is.Ik noem deze variabele ref_count.,,, we hebben nu twee variabelen:,,,, bijvoorbeeld: var, tsingleton = nul;,, ref_count: gehele = 0;,,,, ik - variabelen, ze bevatten geen afval.Ik weet het, een automatisch, dus dit is een van de leesbaarheid van het probleem, en we moeten een verklaring. Dat boven het niveau van de tsingleton variabele blok, als je kijkt naar de voorbeelden van documenten, je kan worden gedownload op het einde, je vindt me al in de verklaring van de interface zichtbaar deel buiten De eenheid,,,,., dit is de tsingleton dergelijke verklaringen:,,,,, tsingleton =, openbare functies die newInstance:TObject;,,,,, freeinstance bestrijken; procedures; deze functie, en Tel: gehele getal; en, tot slot,,,,,,, ik meer de functie van een graaf, we kunnen zie, het in de praktijk, is het vaak moeilijkHet bestaan van een object wat lezen.Het is niet nodig, maar je hoeft het niet toevoegen aan je enkele gevallen - niet als je het nodig hebt,,,, oké, nu het proces van de verwezenlijking van de drie methoden:,,,,, tsingleton. Freeinstance; beginnen, DEC (ref_count);,, als (ref_count = 0) en Dan, beginnen, zoals: - = nul;,, /uitroeiing van de privé - variabelen, die freeinstance;,,,,,,, aan het einde van het tsingleton.newinstance;; TObject functies:;,,,, als (niet (voorbeeld) en dan beginnen, bijvoorbeeld:,,, die newInstance = - privé - variabelen, ///////;, hier, op deze manier:,, ///////tsingleton (resultaten). Variabelen: = waarde;,,,, aan het einde van de zaak;: =, Inc. (ref_count);,,,,, Aan het einde van deze functie; tsingleton.refcount: het hele nummer, begint;Resultaten: = ref_count;,,,,,,,, een einde te maken aan de; dat is het!Toen je belde, tsingleton bouwer, een oproep voor TObject newInstance aangekondigd.De methode van toewijzing van om tegemoet te komen aan de nieuwe doelstellingen, en terug te keren naar de fabrikant.De fabrikant gebruik van het geheugen, en uiteindelijk de terugkeer van een aanwijzing van de code van de aanwijzing, bekend als de aannemer.Deze punten zijn opgeslagen in een variabele in het doel gebruiken.,,, ik heb het herschrijven van de herinnering newInstance methoden alleen als er geen klasse.Als er een voorbeeld van deze functie terug aan de fabrikant, het zal worden gebruikt. Als we drie keer het voorwerp van de fabrikant, is het de eerste keer gecreëerd.Een gewoon hergebruik van het eerste voorwerp.De graaf variabelen om ons te laten weten dat wij de enige drie referentie.,,, wanneer een aanvraag om een verdelger bellen freeinstance vrijlating toegewezen aan de fabrikant van de herinnering.Deze benadering werd ook de vernietiging van het object, pas als de laatste verwijzing wordt verwijderd.,,, als je van plan bent om in een multi - threaded programma enkele gevallen het gebruik van voorwerpen, behandel je een variabele gedeeld tussen de draden van je.Omdat dat is wat je doet: gedeeld tussen de draden.Dus als je verandert van gegevens, je moet voorzichtig zijn, eenvoudig, zoals je kunt zien, het creëren van een enkele gevallen van klasse niet te veel inspanning, maar de juiste kennis en een paar regels.Mijn code 5.De technologie kan met oudere versies van de expert, maar ik heb het niet getest, dus ik ben niet beloven, in de documenten die ik je gegeven heb spelen, laat me je een woord van waarschuwing,,, niet van een enkele gevallen gedaald.De reden is, maar een voorbeeld van een variabele en tellen.Als je twee tsingleton, slechts één doel zal worden gecreëerd.Een andere categorie hergebruik van het doel, en dat is een van de voorbeelden van de verschillende categorieën.Niet langs daar weg.Je kan één vergadering van de eigendom van eenvoudige redenen.Een deel is van een tafel en een onderdeel kan worden van de andere bestanddelen van staatsbedrijven. En, weet je, de constructeurs en de verschrikkelijke op elke nieuwe referentie van het creëren en vernietigen.Niet aan de fabrikant van privé - variabele en niet - vrij in de verdelger.Integendeel, de oprichting van nieuwe methoden en freeinstance naar voorbeeld van de code, zoals aangegeven in de opmerkingen in dit ref_count.,, de aanpassing van de twee methoden in deze twee methoden in verband met de volgorde van de rest van de code de sleutel is.Het moet op passende wijze te scheppen en vernietigen, als er iets fout gaat.Als je de eerste code van een uitzondering, is de volgorde van de gebeurtenissen zal doen om te verzekeren dat het de juiste is.Het wachtwoord verandert in een gevaar voor je.,,,, je gewoon een eenheid kan worden gedownload in enkele gevallen beschreven in de verklaring van dit soort.,,, in verband met het dossier: code centrum van de ingang 15083.,,, ik ben er zeker van dat u kunt vinden op verschillende plaatsen, een aparte categorie van pas komen, nu moet je Je eigen gereedschap.Als je me wilt bellen, ik e - mail @ Cintra. Niet, gelukkig, en programma 's.,,,,,
Het creëren van een echte
Next Page:Mijn verzoek is beter?Weet je, hoe