-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Общая идея в том, чтобы либа каким-угодно образом могла предоставить игре список сервисов, которые можно использовать, вместе со списком требований для них. Как они будут использоваться и где храниться зависит полностью от игры.
Например:
- У нас есть LogFactory, который по сути ничего не требует, так что для него есть просто метод public static LogFactory CreateLogFactory().
- Но, например, есть в модуле логгирования универсальная обертка над ILogger, которая сама снача должна получить логгер. Для этого мы либо делаем метод типа public static Logger CreateGeneralLogger(LogFactory factory), либо public static Logger CreateGeneralLogger(ILogger inner), либо оба варианта, тут хз, буквально как пожелаем.
- Затем идут уже сложные варианты, типа CreateDependencyInjector(MembersScanner membersScanner, RequestsScanner requestsScanner), принимающий на вход 2 других сервиса которые мы либо сами реализуем, либо создаем в этой же фабрике типа CreateMembersScanner(), CreateRequestsScanner(params IProcessingRequestScanner[] scanners) или CreateDefaultMinimalRequestsScanner().
И последний случай имеет смысл, потому что мы вполне можем захотеть настроить сканнер запросов как-то по-своему, чтобы исключить отдельные инжекторы или добавить левые атрибуты в NotNullChecker. Или подсунуть кастомный сканнер полей и свойств, который будет работать как-то немного иначе, а-ля внедрять зависимости в set-only свойства или чет такое, вариантов масса.
Metadata
Metadata
Assignees
Labels
No labels