Palladion Software
user icon Guest

The ABC's of Domain Modeling in Delphi [Building Blocks]

Created by zope. Last modified 2004-07-15 05:26:35.

Abstract Base Classes:  Building Blocks for Extensibility


From Clouds to Code -- How?
Abstract Base Classes

"Both Sides Now" is fine, but "Where's the Beef?"

Ok, so you bought the argument about domain models, downloaded or bough design tools, took the training, or hired in the expertise. What do you have for your trouble?  Pretty pictures of clouds, or boxes, with funny lines connecting them?  Where is the magic button to press to generate the killer app of the next decade, you ask? 

Here's a short list of the goodies you should hope to derive from the process:  Within the Class Category diagrams lie the abstractions which allow us to divide the application with success. 

Return to top. 


Abstract Base Classes

These marvels of object-orientation are the key to achieving the partitioning we are looking for. They define the protocols, or interfaces, between portions of the system, insulating the clients of a set of classes from the grubby details of their implementation. 

ABC / Interface / Protocol / Signature

Like their congnates in other OO paradigms, ABC's expose only the high-level "client view" of a group of objects. Unlike some of those mechanisms, ABC's are particularly intended to serve as the actual inheritance base of the classes they abstract. In particular, they declare only behavior which their subclasses may (or must) override. 

Spare Us the Details!

It can be tempting to move "common" implementation details up the inheritance tree to permit sharing between sibling classes. Resist the temptation! If you find such factoring compelling, create an intermediate class to hold the "shared" implementation. Allowing implementation details to pollute an ABC severely limits its usefullness. 

Extra Benefits

Designing around ABC's takes you most of the way toward being able not only to partition your application, but also to distribute it.  Return to top. 


TOC | Previous | Next

Copyright 1997, Palladion Software. 

Please report any problems with this page to Tres Seaver, tseaver@palladion.com.