Should the add service always invoke a doAdd service?
Index Yes. The doAdd encapsulates the assignment implementation of the collaboration. For example, how a farmer is stored within a MilkingTransaction. (See also: How to Implement Collaboration Rules). In fact the addFarmer method should look like this: /* MilkingTransaction service */ public void addFarmer(Farmer Farmer) throws BusinessRuleException { if (Farmer == null) { throw new BusinessRuleException(“Tried to add null farmer”); } this.testAddFarmer(aFarmer); aFarmer.testAddMilkingTransaction(this); this.doAddFarmer(aFarmer); aFarmer.