Ich bin neu in Python und benötige einige Ratschläge zur Implementierung des folgenden Szenarios.
Ich habe zwei Klassen für die Verwaltung von Domains bei zwei verschiedenen Registraren. Beide haben die gleiche Schnittstelle, z
class RegistrarA(Object):
def __init__(self, domain):
self.domain = domain
def lookup(self):
...
def register(self, info):
...
und
class RegistrarB(object):
def __init__(self, domain):
self.domain = domain
def lookup(self):
...
def register(self, info):
...
Ich möchte eine Domain-Klasse erstellen, die bei gegebenem Domain-Namen die richtige Registrar-Klasse basierend auf der Erweiterung lädt, z
com = Domain('test.com') #load RegistrarA
com.lookup()
biz = Domain('test.biz') #load RegistrarB
biz.lookup()
Ich weiß, dass dies mit einer Factory-Funktion erreicht werden kann (siehe unten), aber ist dies der beste Weg, dies zu tun, oder gibt es einen besseren Weg, OOP-Funktionen zu verwenden?
def factory(domain):
if ...:
return RegistrarA(domain)
else:
return RegistrarB(domain)