koppel

Interface is een eenvoudige compilertijdinterfacecontrole voor OO PERL.
Download nu

koppel Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • Perl Artistic License
  • Prijs:
  • FREE
  • Naam uitgever:
  • Scott Walters
  • Uitgever website:
  • http://search.cpan.org/~swalters/Math-Preference-SVD-0.01/lib/Math/Preference/SVD.pm

koppel Tags


koppel Beschrijving

Interface is een eenvoudige compileertijdinterfacecontrole voor OO PERL. Synopsis-pakket foo; Gebruik Interface 'iterator', 'Generator', 'Clonable', 'DBI :: DBD'; Abstracte Tijd Interface Compliance Testing. Inspecteert de methoden die in uw module zijn gedefinieerd en vergelijkt deze met de methoden die zijn gedefinieerd in de modules die u vermeldt. Vereist geen speciale of aanvullende syntaxis. Moet u niet fouten implementeren in een van de vermelde klassen, compileren zal afbreken met een foutmelding.Thodden die beginnen met een onderstrepingsteken worden genegeerd en verondersteld niet deel uit te maken van de interface. De modules zijn vermeld op de interfacemarkering van de gebruik wordt toegevoegd aan uw @isa-array. Dit is niet gedaan om code van hen opnieuw te gebruiken - Interface-definities moeten lege code-stubs zijn, of misschien een referentie-implementatie. Het wordt gedaan, zodat uw module de -> ISA () Test voor de naam van het pakket effenen dat u de interface van implementeert. Dit vertelt Perl dat uw module kan worden gebruikt in plaats van de modules die u de interface van.Sample Interface Definitie: pakkettestinterface implementeert; Sub foo {} subbalk {} sub baz {} 1; een pakket dat beweert de interface "Testinterface" te implementeren, zou de methoden foo (), bar () en baz () moeten definiëren. Een "interface" heeft mogelijk wat nodig verklaring. Het is een objectoriëntatie-idee, ook bekend als polymorfisme, dat zegt dat u verwisselbare objecten verwisselbaar zou kunnen gebruiken. Dankzij de hemel kwamen de OO-mensen en liet ons het licht zien! De flip-kant van polymorfisme is type veiligheid. In PERL, -> ISA () laat je controleren of er iets is afgeleid van een basisklasse. De logica gaat dat als het is afgeleid van een basisklasse, en we zijn op zoek naar een object dat de behoefte aan de basisklasse vult, dan zal de subklasse net zo goed werken, en we kunnen het accepteren. Uitbreiden van objecten wordt gedaan door de basisklassen te subclassen en de subklassen af te lopen als versies van het origineel. In overtuiging van deze OO-rote heeft u er bijna van overtuigd dat de wereld op deze manier werkt, dit blijkt bijna volledig nutteloos te zijn. In de echte wereld zijn er slechts enkele redenen dat een object wordt gebruikt in plaats van een ander: iemand heeft een echt vreselijke code geschreven en je wilt hun object wisselen met een betere versie van hetzelfde. Je overstapt naar een object dat hetzelfde doet, maar op een andere manier, bijvoorbeeld met behulp van een database-winkel in plaats van een platte bestandswinkel. U maakt enkele kleine wijzigingen in een bestaand object en u wilt in de toekomst de basisklasse in andere richtingen kunnen verlengen. Alleen in het laatste geval is geërfde code met subclassificatie zelfs nuttig. In feite is er een beweging naar het gebruik van compositie (HAS-A) in plaats van erfenis (is-a) in de hele industrie, vooral omdat ze moe zijn van mensen die erop wijzen dat Oo zuigt omdat erfenis alleen is om een grote rommel te doen van anderszins schone code.Seperating De interface van de implementatie laat u meerdere implementaties van een idee maken. Ze kunnen code met elkaar delen, maar dat hoeft niet te doen. De programmeur heeft ons verzekerd dat hun module doet wat nodig is door te vermelden dat het de interface implementeert. Hoewel dit niet bewijs is dat de code werkt, is Climaing om een interface te implementeren een soort contract. De programmeur weet welk werk van hem is vereist en zij is ermee ingestemd om erop te leveren. De definitie van de interface kan een pakket vol met stub-methoden zijn die niets doen, of het kan een daadwerkelijke werking van een voorwerp zijn Streven naar compatibiliteit met. Het eerste geval is schoonbestendig en het pakket vol stubs dient als goede documentatie. Het tweede geval kan handig zijn in gevallen waarin het eerste geval niet is gedaan, maar iemand negeerde de wijsheid van de interface en schreef toch een pakket. De wijsheid van de interface zegt om een interface te schrijven voor elk nieuw soort object dat meerdere soorten voorwerp zou kunnen schrijven implementaties. De interfaces dient als een contract voor de minimumfuncties die nodig zijn om een object van dat type te implementeren. Bij het werken met objecten - het maken van ze, typen controleren wanneer u ze accepteert, enz. - Werk altijd met het interfacetype, nooit het type van een individuele implementatie. Dit houdt uw code generiek op. Om het compositie te doen (HAS-A), bevat u een of meer objecten die u nodig hebt om uw werk te doen, u implementeert een interface die methode naar die objecten wordt verzonden. Misschien creëert uw nieuwe () methode die objecten en slaat ze in bijvoorbeeld variabelen op. Vereisten: · Perl


koppel Gerelateerde software