A new pattern I have been gravitating towards is making your code dumb.
Your code should not know things. It should be dumber as much as it can be.
Maximize the dumbness of your code by extracting as much of the business logic out of it as possible.
Convert business logic into configuration and write code to use those configuration and execute the logic.