blabla
unknown
php
5 years ago
792 B
18
Indexable
<?php
interface CalendarStrategy
{
public function support(string $type): bool;
public function create(): ModuleFindStrategy;
}
final class ModuleFindStrategyFactory
{
public function __construct(private CalendarStrategy ...$strategies) {}
public function create(object $module): ModuleFindStrategy
{
foreach($this->strategies as $strategyFactory) {
if ($strategyFactory->support($module->type) {
return $strategyFactory->create();
}
}
return new EmptyFindStrategy();
}
}
final class SimpleCalendarStrategy implements CalendarStrategy
{
public function support(string $type): bool
{
return 'Calendar' === $type;
}
public function create(): ModuleFindStrategy
{
//
}
}Editor is loading...