zdz wrote:
The better question is "what is an object?".
my definition of object in my language is;
A fully independent computational unit that can ONLY receive and send messages with other objects. State AND behaviour are encapsulated. (This is the actor computational model).
An object is the atomic unit of construction of a program. (Objects are not Russian dolls, you can't crack an object open and more objects fall out. The better metaphor is routers connected together in a network passing messages to each other).
Objects can however be 'simulated' (virtualised) but providing a virtual environment.
An object has a network interface - A driver to access the data received (A traditional example is a calling convention and stack details) - And a "Controller" (mvc), logic to understand what the message means (A 'view' is state in a stateful protocol. The controller uses the view information to help understand messages) and invokes model methods once it understands the message intentions.
And object has a default Controller (with a stateless protocol so no view).
I'm pretty happy with the object side of things but comments always welcome