Caracteristici ale OEP în trăsături php
Trasaturi și moștenire multiplă
Multe surse de trăsătură este scris că acestea acționează moștenire ca mai multe. Nu este asa! În cazul în care moștenirea se presupune că o clasă este un părinte, iar celălalt - un descendent. Pentru a identifica astfel de cazuri în PHP furnizate instanceof operatorului. care lucrează cu clase și nu funcționează cu trasatura. Moștenirea implică prezența Trăsăturile mecanismului polimorfism același - o funcționalitate mecanism de copiere. Moștenirea vă permite să creați o ierarhie de abstracțiuni Trăsăturile - extinderea pe orizontală a funcționalității de clasă.
Atunci când o trăsătură se adaugă la orice clasă, de fapt, aceasta înseamnă că toate metodele și câmpurile trăsăturii copiate din clasa. Prin urmare, pentru a face Trăsăturile corespunzătoare dovedit de multe ori în codul de luptă, de exemplu, descrierea Singleton:
Într-adevăr, de o astfel de utilizare Trăsăturile sunt foarte confortabile - o linie de cod, iar clasa este deja un Singleton:
Rezultatul codului:
O altă metodă foarte mare succes de aplicare Trăsăturile este utilizarea lor în combinație cu interfețe. În PHP, toate metodele de interfață nu au realizarea, astfel încât fiecare clasă care implementează o interfață trebuie să determine în mod independent toate metodele descrise în interfața. În cazul în care punerea în aplicare a metodelor de interfață pentru a face în trasatura, atunci este o placere de a utiliza - o clasă implementează o interfață și folosește trăsătura unde și declarate toate metodele de interfață necesare.
De exemplu, să presupunem că aveți nevoie pentru a pune în aplicare modelul de proiectare Observer. Un model destul de comun, de altfel. Cu Trasaturi acest model are o soluție foarte elegantă:
Rezultatul codului:
Una dintre proprietățile cele mai utile Trăsăturile este faptul că clasa poate un numar nelimitat folosi. Această proprietate este destul de ușor de utilizat. De exemplu, dacă dintr-o dată în codul este prezent clasa care constă dintr-un număr mare de rânduri. Deoarece este imposibil să se descompune o clasă în părți mai mici - poate funktsionalnst raspihat mai multe trăsături. Deci, cel puțin, este mai ușor de navigare cod. Astfel de clasa api poate fi o clasă, de exemplu.
surse de informații utile asupra însușirilor
Lucrarea oficială a trăsăturii, spune că obiectivul principal urmărit prin introducerea acestei funcționalități - reducerea duplicării cod în proiecte. Prin urmare, pentru a nu confunda colegii mai bine pentru utilizare Trăsături scopul propus. Mai mult decât atât, o trăsătură necesară pentru a dezvolta o atitudine lipsită de ambiguitate - acestea sunt necesare pentru programul de formare a imaginii codul Poysti. Este cu siguranță merită luat în considerare atunci când scrieți Trasaturi.