[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: В чем разница / что лучше?
Mulligatawny
Я имею ввиду отдельное свойство или целиком?

Имеем CustomerEntity: $customer->id = 100

$Class1->updateCounter( $customer->id )

class Class1 {

public function updateCounter( int $customerId ) {
..some mysql update where id = $customerId
}
}


и

$Class1->updateCounter( $customer )

class Class1 {

public function updateCounter( CustomerEntity $customer ) {
..some mysql update where id = $customer->id
}
}
sg.com
ну если используется только отдельное свойство, то его и нужно передавать. Все остальное, раз там не используется то оно не нужно.
Игорь_Vasinsky
// Создаём объект двигателя
$engine = new DieselEngine();

// Внедряем зависимость в объект автомобиля
$car = new Car($engine);

// Запускаем двигатель автомобиля
$car->startEngine();


Dependency Injection (DI)

Dependency Injection (DI) — это шаблон проектирования в объектно-ориентированном программировании, который позволяет объектам получать свои зависимости извне, а не создавать их самостоятельно. Это способствует слабой связанности между компонентами, улучшает тестируемость и расширяемость кода.

Основные концепции и преимущества DI:

Зависимость: Это объект, который требуется другому объекту для выполнения своей работы. Например, класс Car может зависеть от класса Engine.

Инжекция зависимости: Процесс предоставления зависимостей объекту извне. Это может быть сделано через конструктор, сеттер или интерфейс.

Слабая связанность: Объекты не создают свои зависимости, а получают их извне, что уменьшает связанность между классами.

Упрощённое тестирование: Легче подменять зависимости на моки или стабы при написании тестов.

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

Улучшенная поддержка: Код становится более модульным и его легче поддерживать и развивать.


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.