"Peter C. Chapin" a �crit dans le message de > Okay, so in other words either approach is considered acceptable by the > community at large. It's a matter of style. At least that's the > impression I get from your reply. Does that sound like a fair > assessment? > Since you said you were comming from a C++ background, let me explain some things you must understand first. Ada has a so-called "building blocks" approach. Each feature provides a well-defined functionality, and the user builds the features he needs by assembling those building blocks. For example, packages provide encapsulation. Derived types provide support for inheritance. Tagged types provide support for dynamic dispatching. Ada has no built-in concept of "Class" in the usual sense. If you consider that a class is an encapsulation with dynamic binding, then a class in Ada is a design pattern where you just declare one tagged type inside a package. *For this design pattern*, it makes a lot of sense to declare the package with the class name. A full discussion of this has been published in Ada Letters (Vol. XV, n�2): "A naming convention for classes in Ada 9X". The paper can be downloaded from http://www.adalog.fr/publica2.htm. Note that this convention works very well with "facets" generics, i.e. generics used to add properties to tagged types. Now, this is not the only possible design pattern. For example, you can have the equivalent of "friends" in C++ by declaring two tagged types in the same package. The previous notation is no more applicable to this pattern. For more sophisticated use of building blocks/design pattern approach, look at "Ada, Interfaces and the Listener Paradigm", a paper presented at Ada-Europe 2002 which is available from the same web page. -- --------------------------------------------------------- J-P. Rosen (rosen@adalog.fr) Visit Adalog's web site at http://www.adalog.fr