Серия по объектно-ориентированному программированию (ООП): особенности
В этой серии концепций ООП с использованием PHP, Javascript и Dart мы рассмотрели Классы и объекты, Атрибуты и методы, Конструктор и деструктор, Модификатор доступа, Наследование, Полиморфизм, Абстракция. , Инкапсуляция, Пространства имен
Черта – это отличительный признак.
Трейты в контексте объектно-ориентированного программирования — это классы, используемые для объявления методов с любым модификатором доступа, который может использоваться в нескольких классах. Его нельзя создать так же, как интерфейс, но его можно использовать внутри класса.
Трейт в PHP
PHP не поддерживает множественное наследование, но бывают случаи, когда в целях повторного использования кода в нескольких частях приложения вступает в игру трейт.
Например:
//this doesn't work Class A extends B, C{ }
Ключевое слово trait используется в PHP.
<?php trait Tutorial{ //write the methods with any access modifier } ?>
Ключевое слово use используется для доступа к признакам внутри класса.
<?php trait tutorial { public function trait_message() { echo "I\'m a trait in PHP"; } } class Introduction { //since trait is not a class we can only access it but can't instantiate it use tutorial; } $trait_obj = new Introduction(); $trait_obj->trait_message(); ?>
Вывод
Мы также можем получить доступ к нескольким трейтам из класса и использовать их методы, как показано выше:
class Introduction { use tutorial, phptutorial; }
В ситуациях, когда есть конфликты методов из разных трейтов, мы можем использовать псевдоним, чтобы различать методы:
use tutorial, phptutorial{ phptutorial::message as phpMessage; }
Черты в Javascript и Dart
В Javascript и Darts нет прямой реализации трейтов, как в случае с C#, PHP или RUST.
Однако существуют подходы, позволяющие использовать несколько методов в классе.
Traitjs можно использовать в Javascript, поддерживающем трейт-поведение. В данной статье приведен пример реализации
Суть этого урока в том, чтобы объяснить концепции трейтов.
Спасибо, что прочитали эту статью.
Следите за следующей статьей из серии ООП: Внедрение зависимостей.
Пожалуйста, поделитесь со своей сетью и не стесняйтесь использовать раздел комментариев для вопросов, ответов и предложений.
Вам нравится эта статья?? пожалуйста, следуйте за мной на hashnode или Twitter @alemsbaja, чтобы оставаться в курсе и узнавать больше об этой серии ООП.
Первоначально опубликовано на https://alemsbaja.hashnode.dev.