Constraints:
-
The larger problem is decomposed into types of 'things' that make sense for the problem domain
-
Each type of thing is described by what operations the things of that type can eventually do
-
Concrete things are then bound, somehow, to the types; mechanisms for doing that vary
-
The rest of the application uses the things not by what they are but by their types
Possible names:
- Types of things
- Abstract data types