Comparison
Clean architecturevsUse case interactor
Clean architecture
entities, then use cases, then adapters, then frameworks — and nothing in an inner circle names anything outside it.
Martin's synthesis of hexagonal, onion and several older layered schemes into concentric circles governed by the dependency rule. Its distinctive contributions are the naming of use case interactors as a layer of their own and the insistence that frameworks are a detail at the outermost ring. In practice it and hexagonal architecture describe the same system, and arguing about which one a codebase follows is rarely a productive hour.
Full entry →Use case interactor
there is one class per thing a user can do, with one public method, and its name is a verb.
An object encapsulating a single application use case, invoked by an adapter and orchestrating entities to carry it out. Making each use case its own class rather than a method on a large service means the dependencies of that one operation are declared precisely, and the class name is a readable inventory of what the system does. The cost is a great many small classes, which some teams find clarifying and others find noise.
Full entry →