Hi Lukas, > These design decisions are hard to fully grasp by e-mail...
I agree :) And if I understand your last e-mail properly, I have no problem at all with your solution. I will elaborate below, but I think the misunderstandings have been cleared. 1. My original approach It was simple: add a listener to jOOQ which receives high level events. States are maintained by jOOQ. 2. The approach that you explained and which I misunderstood Add listeners to each factory. States are maintained by jOOQ. Higher level events are sent. 3. The approach that I understand from your last e-mail Add listeners to each factory. Simple notifications of whatever happens go to the listener. The listener is more like a strategy because it can return wrapper objects (result sets, etc), it is able to maintain states, and can itself have its own list of listeners to which it sends higher level events. If approach 3 is what you meant, I have absolutely no problem with it. The cost of such simple strategy when ignoring events is indeed very low and implementations would start building states only when their debug mode is active. > What do you think, now? :-) Are we on the same train of thought? :) Cheers, -Christopher
