User Tools

Site Tools


s

This is an old revision of the document!


Принцип единственной обязанности (ответственности)(Single responsibility principle).

Этот принцип первый в списке принципов SOLID. Обозначает, что любой объект должен иметь лишь одну обязанность и эта обязанность должна быть полностью реализована в классе объекта (инкапсулирована).

Из этого следует что должна быть одна причина чтобы вносить изменения в объект.

Пример

index.php

$product = new Product();
$product->setPrice(10);

product.php

class Product {
public function setPrice($price) {
    try {
        // save price in db
    } catch (DbException $e) {
        $this->logError($e->getMessage());
    }
}
 
public function logError($error) {
    // save error message
    }
}

Класс Product нарушает принцип единственной ответственности, так как он имеет две ответственности:

  1. Работа с продуктом
  2. Логирование ошибок
s.1646831822.txt.gz · Last modified: 2023/09/14 06:06 (external edit)