s
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| s [2022/03/09 13:15] – создано chifek | s [2023/09/14 06:06] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 8: | Line 8: | ||
| Пример | Пример | ||
| + | |||
| // | // | ||
| Line 15: | Line 16: | ||
| $product-> | $product-> | ||
| </ | </ | ||
| + | |||
| + | |||
| + | // | ||
| + | |||
| + | |||
| + | < | ||
| + | class Product { | ||
| + | public function setPrice($price) { | ||
| + | try { | ||
| + | // save price in db | ||
| + | } catch (DbException $e) { | ||
| + | $this-> | ||
| + | } | ||
| + | } | ||
| + | |||
| + | public function logError($error) { | ||
| + | // save error message | ||
| + | } | ||
| + | } | ||
| + | |||
| + | </ | ||
| + | |||
| + | Класс 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.1646831715.txt.gz · Last modified: 2023/09/14 06:06 (external edit)