double arrow

Трейты и наследование

3

Трейты перегружают методы базового класса, а методы текущего класса перегружают методы трейтов (листинг 4).

Листинг 4 Порядок перегрузки методов. Файл traits.php

Если же в двух трейтах будет определен метод с одним и тем же именем, возникнет конфликт. Впрочем, его можно разрешить, явно указав, какой из методов следует использовать в фиrурных скобках после оператора use. Внутри фигурных скобок можно применять ключевые слова insteadof для указания, какой из методов следует использовать. Кроме этого, допускается использование ключевого слова аз для указания нового псевдонима для конфликтующего метода (листинг 5).

Листинг 5 Разрешение конфликтов. Файл traits_conflict.php


 

Задания для самостоятельного решения

Усовершенствуйте систему классов, разработанную в предыдущей лабораторной работе:

1. Придумайте задачу и обоснуйте использование интерфейсов в архитектуре вашего примера;

2. Создайте набор интерфейсов (не менее трех), расширяющих поведение некоторых классов;

3. Продумайте целесообразность использования трейтов в вашей архитектуре классов

4. Создайте набор трейтов (не менее двух), продемонстрируйте их работу

Самостоятельно ознакомьтесь с одним из паттернов проектирования. Используя интерфейсы и трейты, реализуйте его.

Все пункты задания должны быть проиллюстрированы соответствующим кодом. Рекомендуется разделять файл класса и файлы скриптов с примерами. Обязательно присутствие UML - диаграммы классов (или ее аналога).

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  


3

Сейчас читают про: