Chapter 1. Design Concepts
Alan Kay’s favorite metaphor for software objects is a biological system. Like cells, software objects don’t know what goes on inside one another, but they communicate and work together to perform complex tasks. In contrast, monolithic software is like a mechanical clock containing innumerable gears. Each gear functions unintelligently and only in relation to other adjacent gears. That design is hopelessly flawed. “When you’re building gear clocks, eventually you reach a certain level of complexity and it falls in on itself,” says Kay.
A software object may be machinelike, but, crafted by a thoughtful designer, it can be very smart. It makes decisions; it does things and knows things. It collaborates with potentially ...
Get Object Design: Roles, Responsibilities, and Collaborations now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.