Skip to content

Create ServiceFactory #9

@KeyJ148

Description

@KeyJ148

Общая идея в том, чтобы либа каким-угодно образом могла предоставить игре список сервисов, которые можно использовать, вместе со списком требований для них. Как они будут использоваться и где храниться зависит полностью от игры.
Например:

  • У нас есть 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
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions