Untitled

mail@pastecode.io avatar
unknown
php
3 years ago
735 B
14
Indexable
Never
<?php

abstract class AbstractFactory
{
    public static function getModule(string $type): AbstractModuleType
    {
        if ( $type === 'Calendar') {
            return new CalendarModuleType();
        } // другие реализации
        }  else {
            // дефолт
        }
    }

}

abstract class AbstractModuleType {
    abstract public function CalendarStrategy($prefix);
    abstract public function CalendarTimeStrategy($prefix);
}

final class CalendarModuleType extends AbstractModuleType {

    public function CalendarStrategy($prefix) {
        //реализация
    };
    public function CalendarTimeStrategy($prefix) {
        //реализация
    }; 
}