lundi 16 mars 2020

Design pattern to choose different database

I have created a class to interact with my database:

class MyDatabase {
  connect() { /* ... */ }
}

And the database has two types of modes: admin and client. I would like to have different classes for each mode:

class MyDatabaseAdmin {}

class MyDatabaseClient {}

Both of them will implement the same interface, but with different underline implementations. I would like to know if there is a design pattern to instantiate the parent MyDatabase choosing one over the other. Something like:

const db = new MyDatabase({ mode: 'admin' })
db.connect() // parent calls MyDatabaseAdmin.connect

I don't need a perfect answer, just some direction to what I should search for.

Thanks.

Aucun commentaire:

Enregistrer un commentaire