4

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 つの質問があります。

  1. APIRouterfactory のコードから、インスタンスの作成に使用されていることがわかります。しかし、なぜそれが必要なのでしょうか? api_router = ApiRouter()インスタンスを取得するために使用しないのはなぜですか?

  2. __init__と 工場ではとlocal_configglobal_config使用されません。関数で定義する理由

コンストラクターの代わりにファクトリーを使用することには、いくつかの利点があるはずです。JAVAのデザインパターンのように..答えが利点または理由を説明できることを願っています. いくつかの例でより良い

4

1 に答える 1