Object-oriented programming is an exceptionally bad idea, which could only have originated in California.
The object has three properties, which makes it a simple, yet powerful model building block. It has state so it can model memory. It has behavior, so that it can model dynamic processes. And it is encapsulated, so that it can hide complexity.
—Trygve Reenskaug, Working With Objects
Well, yes, we've all learned about the object-oriented programming paradigm before. But it never hurts to go over some basic definitions so that we're all on the same page for our discussion about object-oriented analysis and design.
First of all, objects are things. They have ...