s
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| s [2022/03/09 13:15] – chifek | s [2023/09/14 06:06] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 36: | Line 36: | ||
| } | } | ||
| + | </ | ||
| + | |||
| + | Класс Product нарушает принцип единственной ответственности, | ||
| + | - Работа с продуктом | ||
| + | - Логирование ошибок | ||
| + | |||
| + | // | ||
| + | |||
| + | < | ||
| + | class Logger { | ||
| + | public function log($message) { | ||
| + | //... | ||
| + | $this-> | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Теперь изменим файл index.php: | ||
| + | |||
| + | // | ||
| + | |||
| + | < | ||
| + | $logger | ||
| + | $product = new Product($logger); | ||
| + | $product-> | ||
| + | </ | ||
| + | |||
| + | Изменим класс Product: | ||
| + | |||
| + | // | ||
| + | |||
| + | < | ||
| + | class Product { | ||
| + | private $logger; | ||
| + | | ||
| + | public function __construct(Logger $logger) { | ||
| + | $this-> | ||
| + | } | ||
| + | |||
| + | public function setPrice($price) { | ||
| + | try { | ||
| + | // save price in db | ||
| + | } catch (DbException $e) { | ||
| + | $this-> | ||
| + | } | ||
| + | } | ||
| + | } | ||
| </ | </ | ||
s.1646831756.txt.gz · Last modified: 2023/09/14 06:06 (external edit)