Характеристики на ООП в PHP черти

Черти, както и множество наследство

Много източници на черта е записано, че те действат като множествено наследяване. Това не е така! Ако наследството се приема, че един клас е родител, а другият - потомък. Да се ​​идентифицират такива случаи в PHP условие instanceof оператор. който работи с часове и не работи с характерната черта. Наследствено предполага наличието на полиморфизъм механизъм черти същите - функционалност механизъм копиране. Наследяването позволява да създавате йерархия от абстракции черти - хоризонтално разширяване на функционалността на класа.

Когато една черта се добавя към всеки клас, в действителност, това означава, че всички методи и полета отличителна черта копират в клас. Следователно, за да направите съответните черти доказали много пъти в кода на борба, например, на описанието на Сингълтън:

Действително, от такова използване черти са много удобни - един ред код, и класа вече е Сингълтън:

Резултатът от кода:

Друг много успешен метод на прилагане черти е тяхното използване във връзка с интерфейси. В PHP, всички методи на интерфейса не разполагат с реализацията, така че всеки клас, който реализира интерфейс трябва да определят самостоятелно всички методи, описани в интерфейса. Ако прилагането на методи на интерфейса, за да в черта, а след това за мен е удоволствие да се използва - един клас изпълнява интерфейс и използва черта където и обяви, че необходимите методи на интерфейса.

Да предположим, че трябва да се прилагат схемата за дизайн Наблюдател. А доста разпространена модел, между другото. С черти на този модел е много елегантно решение:

Резултатът от кода:

Един от най-полезните свойства черти е, че този клас може да го използвате неограничен брой. Този имот е доста лесен за използване. Например, ако изведнъж в кода присъства класа, състоящ се от голям брой редове. Тъй като е невъзможно да се разлага на класа на по-малки части - тя може да funktsionalnst raspihat няколко черта. Така че най-малко е по-лесно код навигация. Така API клас може да бъде клас, например.

Полезни източници на информация относно черти

Официалният документ на черта, казва, че основната цел, преследвана от въвеждането на тази функционалност - намаляване код дублиране на проекти. Ето защо, за да не се бъркат колегите черти по-добро използване по предназначение. Освен това, черта необходимо да се разработи недвусмислено отношението - те са необходими за изображения, софтуер, Poysti код. Това е определено си заслужава да се има предвид, когато пишете черти.