I don't recall what "object level" refers to, but here's how I use it. I have a whole bunch of classes that perform some set of related tasks, let's say they're all in the same package (not required). There's a set of actions someone outside the package, perhaps another subsystem, would like to invoke on these classes. The ideas behinds these actions are pretty simple, maybe getting some data or doing some caluclations.
However these tasks, while seemingly simple, are complex in implementation, each class does quite a lot of work internally; and that's why I have broken them into different classes and not one or two big ones. In fact, each request of the external subsystem is handled by a different class.
I'd hate to have to have N classes exposed outside the subsystem for N operations. Heck, think of a coupling. Instead I'm going to create a facde. Now, instead of exposing N classes, I expose one class with N methods. The facade class may just be nothing more than a call through. But the user of the facade has a much easier time; and if I need to pass around reference, I can pass around one reference, to the single facade, and not N references. So it makes related classes more manageable form an external point of view.
Does that help?
--Mark
hershey@vaultus.com