Последовательное наследование классов в MVC паттерне? Нездоровый перфекционизм не дает мне покоя.
Раньше нормально писал и особо не парился над красотой кода. Сейчас пытаюсь привести функции и доступность переменных к взаимосвязанному поведению. И возник вопрос а нормально ли вообще использовать "бесконечное" наследование? Кто что скажет по этому поводу?
Позалипал слегка в симфони и зенд и что то они картину не особо прояснили, даже скорее наоборот. !Схематичный пример!:// index.php
require_once($_SERVER['DOCUMENT_ROOT'] . '/inc/defines.php');
require_once(ROOT . 'autoload.class.php');
Load::Import(['controller', 'interface']);
$app = new Controller;
$app-> AppLoad();
// interface.class.php
interface Initialize{
}
// controller.class.php
class Controller extends Load implements Initialize{
private function AppLoad(){
AutoLoad::Import(['view', 'lib', 'sql', 'interface']);
// bla bla
}
}
// view.class.php
public $title;
public $content;
class View extends Controller{
}
// model.class.php
class Model extends View{
}
// sql.class.php
class Mysql extends Model {
}
// и т.д.

21 Авг 2019 в 07:07
185 +1
0
Ответы
1

В MVC паттерне последовательное наследование классов может быть использовано вполне нормально, но важно помнить о его целесообразности и соблюдении принципов SOLID.

Когда вы создаете иерархию классов, следует учитывать, что каждый класс должен отвечать за конкретную функциональность и не нарушать принцип единственной ответственности. Также нужно быть осторожным с применением "бесконечного" наследования, чтобы избежать создания излишне сложных и непонятных структур.

В вашем примере можно заметить, что классы Controller и Model наследуются от класса View, что может быть не самым лучшим решением с точки зрения архитектуры. Рекомендуется обдумать иерархию классов таким образом, чтобы каждый класс имел четкое назначение и отвечал только за свою функциональность.

Также стоит помнить о том, что в PHP отсутствует множественное наследование, поэтому следует избегать излишне глубоких иерархий классов. Вместо этого можно использовать интерфейсы для определения общего поведения и композицию объектов для комбинирования функциональности.

В целом, последовательное наследование классов в MVC паттерне может быть полезным, но важно следить за его логичностью и целесообразностью, чтобы избежать излишней сложности и неоправданных зависимостей между классами.

20 Апр 2024 в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир