Я новичок в Python и нуждаюсь в советах по реализации нижеприведенного сценария.
У меня есть два класса для управления доменами у двух разных регистраторов. Оба имеют один и тот же интерфейс, например.
class RegistrarA(Object):
def __init__(self, domain):
self.domain = domain
def lookup(self):
...
def register(self, info):
...
и
class RegistrarB(object):
def __init__(self, domain):
self.domain = domain
def lookup(self):
...
def register(self, info):
...
Я хотел бы создать класс домена, который, учитывая доменное имя, загружает правильный класс регистратора на основе расширения, например.
com = Domain('test.com') #load RegistrarA
com.lookup()
biz = Domain('test.biz') #load RegistrarB
biz.lookup()
Я знаю, что это можно выполнить с помощью функции factory (см. ниже), но это лучший способ сделать это или есть лучший способ использования функций ООП?
def factory(domain):
if ...:
return RegistrarA(domain)
else:
return RegistrarB(domain)