Wikisage is op 1 na de grootste internet-encyclopedie in het Nederlands. Iedereen kan de hier verzamelde kennis gratis gebruiken, zonder storende advertenties. De Koninklijke Bibliotheek van Nederland heeft Wikisage in 2018 aangemerkt als digitaal erfgoed.
- Wilt u meehelpen om Wikisage te laten groeien? Maak dan een account aan. U bent van harte welkom. Zie: Portaal:Gebruikers.
- Bent u blij met Wikisage, of wilt u juist meer? Dan stellen we een bescheiden donatie om de kosten te bestrijden zeer op prijs. Zie: Portaal:Donaties.
Proxy (ontwerppatroon)
In computer programmeren, is 'proxy' een ontwerppatroon.
Een proxy, in zijn meest algemene vorm, is een klasse die functioneert als een interface naar iets anders. De proxy kan met iets communiceren: een netwerkverbinding, een groot object in het geheugen, een bestand of een andere bron die duur is of onmogelijk te dupliceren.
In situaties waarbij meerdere kopieën van een complex object moet bestaan, kan het proxy patroon gecombineerd worden met het Flyweight patroon om geheugengebruik van de toepassing te beperken. Typisch zal een exemplaar van het complex object en meerdere proxy-objecten worden aangemaakt, deze bevatten allemaal een verwijzing naar één origineel complex object. Alle handelingen uitgevoerd op de proxy's worden doorgestuurd naar het oorspronkelijke object. Zodra alle exemplaren van de proxy buiten gebruik zijn, kan het geheugen naar het complexe object worden vrijgegeven.
Gebruik
Met het proxy ontwerp patroon kunt u een interface naar andere objecten maken door het creëren van een wrapper klasse als de proxy. De wrapper klasse, dat is de proxy, kan extra functionaliteit toevoegen aan het object zonder de code van het object te moeten wijzigen. Hieronder zijn enkele algemene voorbeelden waarin het proxy patroon wordt gebruikt,
- Toegangsbeveiliging toevoegen aan een bestaand object. De proxy zal bepalen of de gebruiker toegang krijgt tot het gevraagde object.
- Vereenvoudiging van de API van complexe objecten. De proxy kan een eenvoudige API te bieden, zodat de complexiteit van achterliggende code onzichtbaar blijft voor een ontwikkelaar.
- Het verstrekken van interface voor externe bronnen, zoals web dienst of REST middelen.
- Coördineren van dure operaties op externe bronnen door de externe bronnen te vragen de operatie zo snel mogelijk te beginnen voordat de toegang tot hulpbronnen beschikbaar is.
- Het toevoegen van een thread-safe functie aan een bestaande klasse zonder wijziging van de code van de bestaande klasse.
Kortom, de proxy is het object dat wordt opgeroepen door de gebruiker om toegang te verschaffen tot een achterliggend complexer object.