AL
Size: a a a
AL
VI
VI
SM
/**
* @param array<mixed> $params
*
* @return array<mixed>|int|float|string|null
*/
public function calculate(array $params);
CalculationResultInterface, каждый конкретный калькулятор возвращает какую-то конкретную реализацию этого интерфейса. А вот со входными данными сложнее... разные классы принимают разные данные. Если создать интерфейс входных данных например CalculationInputInterface, и метод заставить принимать его, то все реализации тоже должны будут принимать этот интерфейс, т.к. сужать тип аргумента нельзя. а надо. как это лучше сделать? пытаюсь придумать фабрику. Класс калькулятора возвращает фабрику, фабрика возвращает данные под конкретный калькулятор. Нужно чтобы в классе был абстрактный метод calculate, который принимал бы в каждом конкретном калькуляторе свой класс входных параметров.AL
АГ
АГ
AL
AL
AL
AL
SM
AL
AL
AL
AL
A