24 lines
566 B
PHP
24 lines
566 B
PHP
<?php
|
|
|
|
/**
|
|
* @package: patterns
|
|
* @author: Yevhen Odynets
|
|
* @date: 2025-07-07
|
|
* @time: 05:52
|
|
*/
|
|
|
|
declare(strict_types = 1);
|
|
|
|
// Separate extensible behaviour behind an interface, and flip the dependencies
|
|
|
|
use Pattern\SOLID\OpenClosed\Figures\AreaCalculator;
|
|
use Pattern\SOLID\OpenClosed\Figures\Circle;
|
|
use Pattern\SOLID\OpenClosed\Figures\Square;
|
|
|
|
$circle = new Circle(3);
|
|
$square = new Square(2, 5);
|
|
$areaCalculator = new AreaCalculator;
|
|
|
|
/** @noinspection ForgottenDebugOutputInspection */
|
|
dump('Circle(3)', $areaCalculator->calculate([$circle, $square]));
|