Серия по объектно-ориентированному программированию (ООП): особенности

В этой серии концепций ООП с использованием 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.