我是 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 类,它给定一个域名,根据扩展加载正确的 Registry 类,例如。
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)