Istanza di classe utilizzata da altri metodi di produzione di classi. Come rimuovere il codice duplicato?

0

Ho una classe base chiamata API che viene usata da tre oggetti (Server, VPS, SharedHosting).

Codice:

class API:

  def get(endpoint, params):

  def post(endpoint, params):

  def parse_response(response):

Classe server:

class Server:

    def __init__(self, name, ip):
        self.name = name
        self.ip = ip


    @classmethod
    def create(cls):
        api = API()
        server = api.post("/server")
        return Server(server['name'], server['ip'])

    @classmethod
    def find(cls, vm_id):
        api = Api()
        server = api.get("/server/:id")
        return Server(server['name'], server['ip'])

VPS e SharedHosting sono molto simili alla classe Server. Come puoi vedere ogni volta che chiamo metodi factory ho bisogno di creare un'istanza di classe API. Come lo faresti? L'ereditarietà è un'opzione in questo caso?

    
posta byterussian 24.04.2017 - 14:45
fonte

1 risposta

2

L'oggetto API è una dipendenza delle classi Server, VPS e SharedHosting. Passa l'API come argomento costruttore a tutti loro.

    
risposta data 24.04.2017 - 14:56
fonte

Leggi altre domande sui tag