24.2. The notion of Contract
One way to implement this pattern is to have the Visitor create a new, private Context that has himself filling the role of Contractant and a representative of the Body as Contracter.
The Body itself could have a calculated role that drags the Contractant into it. These roles then would have perspectives on the features of the Body hidden to non-members.
What variable information goes into a contract?
-
the parties
-
begin- and possibly end date
-
a fee, maybe
Further, the Contractant could have credentials to access resources provided by the Body. We could put all this information on the Account role itself in the form of properties:
-
begin- and end date
-
fee
-
credentials.
So we do not really need a contract.