The way I'd do it is:

interface Database {
  // support shared functions here, and other stuff useful enough to
  // warrant emulation
}

class Postgres : Database {
  // implement the interface, of course, but also all other postgres
  // specific stuff
}


When you go to use it, if you're  happy with the basics, declare
Databases.

If you need something special, use Postgres objects.

Reply via email to