Abstract and Concrete Classes

FDO API

 
Abstract and Concrete Classes
 
 
 

The Geometry API is almost completely abstract. It provides an object-oriented interface to geometry values. All objects in the Geometry API have factory methods in the FdoGeometryFactorytAbstract class. One default implementation is provided, based on FGF in-memory binary storage. It is accessible via the concrete class FdoFgfGeometryFactory.

NoteThe FdoFgfGeometryFactory employes object pooling for many of the data types in the API. While many methods appear to be executing “Create” or “Get” actions, they are, in fact, accessing object pools, thus avoiding costly operations on the memory heap.

All of the other classes in the Geometry API with the exception of two relate to the main abstract type, FdoIGeometry. They either derive from it or are components of it.

The two exception concrete classes are:

  • FdoDirectPositionImpl, a small helper class implementing FdoIDirectPosition.
  • FdoEnvelopeImpl, a small helper class implementing FdoIEnvelope.

Geometries in FGF format can be exchanged between software components without depending on the Geometry API itself, because they are not genuine geometry “objects.” FGF content is based on byte arrays. It is handled through a simple FdoByteArray class that is not specific to geometry.