The Object Teams approach extends object oriented programming with new concepts for reconciling the tensions that otherwise exist between modularity, re-use, encapsulation and long term maintenance and evolution. This is achieved by supporting programming with multiple views, which can be composed in various scalable ways.
Object Teams introduces two new kinds of classes:
- Roles support a per instance specialization of existing objects.
- A Team groups a set of interacting roles into one coherent encapsulated, nestable module.
When binding a role class to its base, methods are declaratively wired for forwarding (role-to-base: "callout") and interception (base-to-role: "callin").
The Object Teams project provides development support at these levels:
- The programming language OT/J extends Java™
- The Object Teams Development Tooling (OTDT) extends Eclipse/JDT
- OT/Equinox extends Equinox
- OT/JPA extends EclipseLink/JPA