Absztrakt osztály perl

Mi az absztrakt osztály? Az interfész eltér az absztrakt osztálytól. Példák absztrakt osztály és interfész megvalósítására perl. Class :: Interface használata

Az OOP elvont osztályzata egy alaposztály, amely nem jelenti saját példányainak létrehozását. Az absztrakt osztály tartalmazhat absztrakt módszereket és attribútumokat.

Az absztrakt osztály az OOP - polimorfizmus egyik alapelveinek élénk bemutatása.

Egyes programozási nyelveken tilos az absztrakt osztályok használata. Néhány - megengedett. Perl, mint mindig, középen. Ebben absztrakt osztályt alkalmazhat a standard nyelvi jellemzőkkel. De erre nincsenek speciális konstrukciók, például PHP vagy Java.

Absztrakt osztály PHP-ben:

Az absztrakt osztályok használata kényelmes, mivel ebben az osztályban elhelyezheti azokat a funkciókat és módszereket, amelyekre később szükség lesz számos más osztályra. Az absztrakt osztály kiváló megoldás, amely megmenti az ismétlődő kódot.

Miért van szükségünk elvont osztályokra és interfészekre?

Tegyük fel, hogy van olyan programja, amely letölti a fájlokat egy távoli kiszolgálóról és feldolgozza azokat.

Először egyszerű txt fájlokat tölt fel, olvassa el az adatokat, mentse őket az adatbázisba, majd átvinni a fájlt a könyvtárba a feldolgozott fájlokkal. A fájlok feldolgozásához egy speciális osztályt használ, amelyet Dokumentumnak hívnak.

Ezután az ügyfeled bejön, és azt mondja, hogy egy hónap alatt nem csak a txt-fájlokat kell feldolgozni, hanem az xml-et is. És néhány hónapon belül doc és pdf is hozzá. Ha a txt és az xml még mindig valami hasonló, a doc és a pdf feldolgozása máris határozottan különbözik az általános áramlástól. Most hozza létre saját osztályát az egyes dokumentumok feldolgozásához: DocumentXML.pm. DocumentPDF.pm stb. A kód megismétlődik. A kezelők zavartságot mutatnak. Végül felhívtál egy módszert a csv fájl kinyomtatására, és a program leesik, mert elfelejtette hozzáadni a nyomtató () metódust a DocumentCSV.pm-hez.

A legegyszerűbb ebben az esetben a Document.pm egy interfész lesz, amely meghatározza az egyes alosztályokban meghatározott metódusok listáját. Ebben az esetben az interfészosztály absztrakt osztály lesz, és a példányok nem hozhatók létre a program művelete során.

Ha elfelejtenünk egy módszert meghatározni, akkor ez világossá válik, amikor először próbáljuk meg futtatni a programot.

Továbbá, ha egyes módszerek közösek az összes alosztályon, absztrakt osztályban definiálhatják azokat. Például a fájlok másolásához és átviteléhez különböző könyvtárakra, vagy postai úton való továbbításra stb.

Perl interfészek és absztrakt osztályok implementálása a Class :: Interface használatával

Class :: Interface egy praktikus modul, amely segít az interfészek és absztrakt osztályok végrehajtásában a perlben egyszerű és kellemes kérdésben.

Moose. Egyébként lehetővé teszi az interfészek végrehajtásának egyszerűsítését is. A Moose-val kapcsolatos példát már említettük. De a Class :: Interface. ellentétben Moose-val. Kicsi és egyszerű modul, nem pedig egy összetett és nehéz rendszer.

Az elvont osztályok és interfészek létrehozásához a modul négy alprogramot biztosít:

  • # 038; interface () - a hívó osztályt egy interfészgé alakítja.
  • # 038; implementers () - betölti az interfészt, amelynek nevét paraméterként adják át, és ellenőrzi a hívott osztályt az összes szükséges módszerhez.
  • Abstract () - a hívó osztályt absztrakt osztályba fordítja.
  • # 038; extends () - betölti az adott elvont osztály adatait, és ellenőrzi a hívó osztályt absztrakt módszerekhez.

Interfész létrehozásához a következőket kell tennie:

Absztrakt osztály létrehozásához a következőket kell tennie:

  • a Class :: Interface használata;
  • egy alprogramot hívtak # 038; absztrakt ()
  • legalább egy alprogramot jelentettek be

Az interfész megvalósítása a Class :: Interface segítségével

Kapcsolódó cikkek