We currently have a J2EE project built on EJB3 and were hoping to get some help on the design.
A little background: Our company sells several products for various companies. Each of these companies have different business rules, etc. Initially when we built our application we were unable to connect to the companies directly via Web Services, etc. And since we were not communicating with an external service, our input was the same for all of the suppliers (with minor differences). Now some of the suppliers have given access to them via Web Services. Since some have this type of service and other don't we have various iterations of rules, etc. You can see that the problem can grow very large very quickly with the diversity of external and internal services.
We would hate to code our business logic with a bunch of if then else (if (company a) then do this; else if ( . . . )). In addition like I said the input also differs per company so we also need to keep that in mind. Like any good application, we want to ensure that the UI is uniform and that the business logic is easily manageable. We need some form of a plug and play type of pattern that would allow us to manage these various services much easily rather than having to go to every business method to update it for the new supplier.
We were hoping if someone could recommend a solution/pattern that might do us some justice. Thank you in advance.
What we use now: STRUTS, EJB3 (stateless session beans), JBoss 4.04, Hibernate (DAO pattern), AXIS (web services)
On first sight this looks like a Strategy Pattern ... Interface stays the same but implementation differs. Just my 0.2 cents ...