design-patterns/resources/view/principles/open-closed.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]));