【发布时间】:2023-03-15 07:49:01
【问题描述】:
我是 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()
我知道这可以使用工厂函数来完成(见下文),但这是最好的方法还是使用 OOP 功能有更好的方法?
def factory(domain):
if ...:
return RegistrarA(domain)
else:
return RegistrarB(domain)
【问题讨论】: