Open
Description
Logging, diagnostics, etc.
We should create interfaces for diagnostics, logging, etc. DiagEngine
can become an interface, and the current DiagEngine
class should become DiagEngineImpl
or some such. That way, when testing, we can inject mocks/stubs more easily.
https://gameprogrammingpatterns.com/service-locator.html
https://johnfarrier.com/the-service-locator-pattern-a-robust-c-implementation
https://blog.ploeh.dk/2024/09/02/keeping-cross-cutting-concerns-out-of-application-code
https://jessemcdowell.ca/2024/05/Cross-Cutting-Concerns
https://softwareengineering.stackexchange.com/questions/318395/are-so-called-cross-cutting-concerns-a-valid-excuse-to-break-solid-di-ioc