我是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):
...
我想创建一个Domain类,给定域名,该类基于扩展名加载正确的注册器类,例如
com = Domain('test.com') #load RegistrarA
com.lookup()
biz = Domain('test.biz') #load RegistrarB
biz.lookup()
我知道这可以使用工厂功能来实现(请参见下文),但这是最好的方法还是使用OOP功能有更好的方法?
def factory(domain):
if ...:
return RegistrarA(domain)
else:
return RegistrarB(domain)