2011-03-07 6 views
1

「状態」の例であるhereに緩やかに接続状態保持プログラムを書いています。推奨用語:「親」よりも良い用語ですか?

AmStateをインスタンス化するときの例では、クラスラジオAmStateへのポインタ(より良い用語?)渡し:

class AmState(State): 
    def __init__(self, radio): 
    self.radio = radio 

... 
class Radio(object): 
    def __init__(self): 
     ... 
     self.amstate = AmState(self) 

例ストアはこのポインタ名で「ラジオ」が、何だろう(?)この値の正しいPython/OOの言葉ですか?私は「親」と言いたいと思っているが、「Amstateの親のは「状態」であり、「ラジオ」ではない。

コードを文書化する際の混乱を最小限に抑えるためにここで使用する用語は何ですか。

ありがとう

+0

多くのオプションがありますが、「親」には何も問題ありません。これらのオブジェクトごとに循環参照を作成しているため、GCの効率が悪く、 '__del__'メソッドがあれば頭痛を与えるので、これは一般的には素晴らしいパターンではないことに注意してください。 –

+0

私は@Glenn Maynardの "parent"を使用することに同意していません。なぜならその用語は、OPが行っているのではない派生クラスの基本クラス(またはクラス)を指定するためによく使われるからです。実際、それはまさに私がそのタイトルからついてくるだろうと思ったものです。 – martineau

+0

@martineau: "Parent"は階層の記述に使用される総称です。クラスはそれが使用される1つのケースです。それはクラスに特有のものではありません。 –

答えて

2

通常、このような構成の用語は「所有者」です。そして、あなたが探している「よりよい言葉」は「参考文献」です。

+0

+1:完全に "参照"に同意し、 "ラジオ" *のように見えるコードスニペットから* AmStateを持つので、 "所有者"という用語は意味をなさない。 – martineau

1

私は、GOF Design PatternsがCanonに最も近いものであり、 'context'を使用しているとします。

+0

GOF * State *パターンでは、コードスニペットの 'Radio'に対応する' Context'は、 'State'への参照を持ちますが、コードスニペットとは異なり、逆のものはありません。本の他のパタ​​ーンに基づいて、その種の参照の良い名前は "所有者"かもしれません。特定のアプリケーションに応じて、「コントローラー」または「コンテナ」が考えられます。 – martineau

関連する問題