私は Python を初めて使用するので、以下のシナリオを実装するためのアドバイスが必要です。
2 つの異なるレジストラでドメインを管理するための 2 つのクラスがあります。どちらも同じインターフェースを持っています。
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)