I have a result function which I want to call only when x number of conditions are met, as soon as the last condition is met.

Each condition could be ignorant of every other condition to reduce coupling.

I'm thinking there may be some kind of 'decision' object which you can register your result function with, and you can specify your x number of conditions. When each condition is met it calls into the decision object to let it know it has been met. When the last condition is met, the result function is called.

I've come across thread-blocking objects which do this, but I'm not looking for a thread-blocking answer.

Is there a general term for what I'm describing?