Factories should be simple classes, usually static. They can also be implemented as static methods on the entity or value object they create. Factories should create domain objects directly and only domain objects. Moreover, factories should not be tied with dependency injection because domain objects shouldn't have dependencies injected into them.
Domain objects should not implement interfaces - that is a needless abstraction.
Services and repository implementations on the other hand do have dependencies and should be created by the DI container.