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.


1. If no authoring role is provided by the API caller, we take it to be the System User.