Я новичок в 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)
