Abstract and Concrete Classes
This section highlights some common points among the classes in the Essential Tools Module.
The Essential Tools Module provides implementation, not policy. Hence, it consists mostly of a large and rich set of concrete classes that are usable in isolation and independent of other classes for their implementation or semantics. They can be pulled out and used just one or two at a time. Concrete classes are the heart of the Essential Tools Module.
The Essential Tools Module also includes a rich set of abstract base classes, which define an interface for persistence, internationalization, and other issues, and a number of implementation classes that implement these interfaces.
Some Essential Tools Module classes are further categorized as collection classes, or collections, as explained in Collection Class Group.
Collection classes generally follow the Smalltalk naming conventions and semantical model: SortedCollection, Dictionaries, Bags, Sets, and so on. They use similar interfaces, allowing them to be interchanged easily. The template-based collections will hold any kind of object; the Smalltalk-like collections require that all collected items inherit from RWCollectable.
Choosing which collection classes to use in your programs is not a trivial task. Appendix A can help you decide which class is the best for your purposes. The Classes | Class Hierarchy tab of the SourcePro API Reference Guide shows the class hierarchy of all the public Essential Tools Module classes. In addition to these public classes, the Essential Tools Module contains other classes for its own internal use.