⊗ppOpIfAp 68 of 107 menu

PHP OOP-da interfeýsleriň ulanylyşy

Şeýlelik bilen, biz interfeýsleriň klasdyň zerur bolan metodlarynyň hemmesiniň amala aşyrylandygyny kontrol etmek üçin gowy usuldygyny anykladyk.

Iňňe bir, has amaly mysala serediň. Bizde predmetler-figuralaryň masywyny saklaýan klas bolsun:

<?php class FiguresCollection { private $figures = []; // figuralar üçin masyw } ?>

Koleksiýa predmetleri goşmak üçin bizim klasymyzda addFigure metodyny amala aşyralyň:

<?php class FiguresCollection { private $figures = []; // Parametr hökmünde figura bilen predmet berilýär: public function addFigure($figure) { $this->figures[] = $figure; } } ?>

addFigure metodu parametri hökmünde figura bilen predmetiň beriljekdigine düşünýäris. Emma buna hiç hili kontrol ýok!

Görnüşler üçin görkezmäni ulanyp we predmetleriň görnüşini aç-açan Figure hökmünde görkezeliň:

<?php class FiguresCollection { private $figures = []; public function addFigure(Figure $figure) { $this->figures[] = $figure; } } ?>

Biz näme etdik ony düşüneliň.

Eger Figure hakyky ýaşaýan klas bolsa, metoduň parametrine biz şol klasyň predmetlerini, şeýle hem onuň mirasçylaryny berip bilerdik.

Bizde, ýöne, Figure - bu interfeýs. Şeýle ýagdaýda görkezme metoduň parametrine diňe biziň interfeýsimizi amala aşyrýan klasyň predmetleriniň berlip bilinjekdigini görkezýär.

Klasymyzyň predmetini döredip we ona figuralary goşmaga synanyşalyň:

<?php $figuresCollection = new FiguresCollection; // Birnäçe kwadrat goşalyň: $figuresCollection->add(new Quadrate(2)); $figuresCollection->add(new Quadrate(3)); // Birnäçe göni burçluk goşalyň: $figuresCollection->add(new Rectangle(2, 3)); $figuresCollection->add(new Rectangle(3, 4)); ?>

Başga bir klasyň predmetini goşmaga synanyşmak säwlik döreder:

<?php $figuresCollection = new FiguresCollection; class Test {}; // başga bir klas $figuresCollection->add(new Test); // säwlik berer ?>

Bu kontrol bize praktikada näme berýär: koleksiýa goşulan ähli figuralar Figure interfeýsini amala aşyrýany üçin, biz her biriniň getSquare metodu we getPerimeter metodu boljakdygyna ynançly bolaris.

Mümkin geljekde kwadrat we göni burçlukdan başga, mysal üçin, üçburçluk hem peýda bolar. Bu ýagdaýda üçburçlugyň hem getSquare we getPerimeter metodu bolar.

Praktikada bu bize şuny berýär: biz FiguresCollection klasynda, mysal üçin, koleksiýanyň figuralarynyň jemi meýdanyny tapýan getTotalSquare metodyny edip bileris. Bu metoda biz figuralaryň masywyny aýlaw bilen gaýtalaýarys we her figura üçin getSquare metodyny çagyrarys.

Her figura Figure interfeýsini amala aşyrýany üçin, biz 100% her biriniň bu getSquare metodyna eýe boljakdygy barada ynançly bolaris.

Şeýlelik bilen, metodunyň amala aşyrylyşy:

<?php class FiguresCollection { private $figures = []; public function addFigure(Figure $figure) { $this->figures[] = $figure; } // Jemi meýdany tapalyň: public function getTotalSquare() { $sum = 0; foreach ($this->figures as $figure) { $sum += $figure->getSquare(); // getSquare metodyny ulanyň } return $sum; } } ?>

Meniň koduma seredip bakmazlyk ediň, şeýle FiguresCollection klasyny amala aşyryň.

FiguresCollection klasyna ähli figuralaryň jemi perimetrini tapmak üçin getTotalPerimeter metodyny goşuň.

Türkmen
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkçeЎзбекOʻzbekTiếng Việt
Biz sahypanyň işlemegi, analitika we şahsyýetleşdirmek üçin cookie ulanýarys. Maglumatlaryň işlenişi Gizlinlik syýasaty boýunça amala aşyrylýar.
hemmesini kabul et sazlamak ret et