openstack neutron で以下のコードを読みました。
class APIRouter(wsgi.Router):
@classmethod
def factory(cls, global_config, **local_config):
return cls(**local_config)
def __init__(self, **local_config):
# do something. Not using local_config
ここで 2 つの質問があります。
APIRouterfactory のコードから、インスタンスの作成に使用されていることがわかります。しかし、なぜそれが必要なのでしょうか?api_router = ApiRouter()インスタンスを取得するために使用しないのはなぜですか?__init__と 工場ではとlocal_configはglobal_config使用されません。関数で定義する理由
コンストラクターの代わりにファクトリーを使用することには、いくつかの利点があるはずです。JAVAのデザインパターンのように..答えが利点または理由を説明できることを願っています. いくつかの例でより良い