Question: Case Design - processes and requirements differ by country
Hello, This is a question from below lesson.
Course: Lead System Architect; Lesson: Designing the case structure (page 4 - From section "Case Design - example one")
In the example from that topic, it is said that IllnessInjury case has processes and requirements that differ with country. There are two other cases as well in this requirement. All these 3 cases are independent (no dependencies b/w them). I assumed that its NOT going to be a country specific application. Say, below are the case's classes.
Option1 - Specialize the IllnessInjury Case Type rule using circumstance. Pros: System will start the right flow for the country based on corresponding circumstanced Case Type rule. Cons: Since other business rules differ by country, those have to be circumstanced as well. Not easy to maintain.
Option2 - Specialize the case's class(pattern inheritance) for each country. Say, IllnessInjury case's class is specialized as follows and these classes will host the country specific flows or business rules. Using DCR, the right IllnessInjury class is instantiated. Specialized classes look something like this.
Pros: Processes and business rules that differ by country reside in their own class. NOT clumsy.
Cons: Multiple classes have to be created.
Question 1: I think option2 is an optimal design for this scenario. What do you think? Any other reasons as to why you think this option is optimal or otherwise?
Question 2: Say, IllnessInjury case has to be a sub-case of case "Accident". Rest of the scenario is same as above. In this scenario, what do you think is an optimal design? Should I still have specialized IllnessInjury classes for each country and configure all country (say 20 countries) specific case types as child cases to "Accident" case in case designer? I've to configure parent-child relationship in case explorer. isn't it?