Style #12 ============================== 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