Philip Brown wrote: > In my opinion; yes, you SHOULD abandon the idea of Private interfaces.
I think you are misunderstanding the term d'art - in this specific architectural context, Private means "Implementation Detail" and not "un-free" or "proprietary". In computer science theory, abstractions are a conceptual device that partitions a component into public and private spaces. Or, as wikipedia puts it, abstraction is a mechanism and practice to reduce and factor out details so that one can focus on a few concepts at a time. The interface taxonomy we use[1] provides terminology to describe these various spaces with a useful level of detail. That space includes words to describe interfaces that are either implementation details or are intentionally exposed interfaces - the internal ones are called "Private", the exposed ones, "Public". Getting rid of abstractions and forcing all implementation details to be exposed to all consumers would simply revert us back to the good old days of gotos and spaghetti code, leaving us with unmaintainable monolithic dinosaurs... :-) Not what either of you intend, I'm sure. -John ____ [1] http://www.opensolaris.org/os/community/arc/policies/interface-taxonomy/