Delegates the task of building a product from its parts to a
separate class, allowing different products to be built and the products
to be built in different ways.
More info
Profile download (Rational Rose model)
context Builder inv: self.isRoot implies self.isAbstract inv: self.isAbstract implies (self.specialization->size() > 0 and self.specialization->forAll (c | c.child.oclIsKindOf (Builder))) inv: not self.isAbstract implies (self.createDep->size() > 0 and self.getResultOp->size() > 0) context aDirectorBuilder inv: self.dBB.isNavigable and not self.dBD.isNavigable and self.dBD.aggregation = AggregationKind::aggregate
The ReportBuilder and ResumeBuilder classes should define their own <<GetResultOp>> operation, whereas the DocumentBuilder class should not. The DocumentBuilder class is not abstract.