私は厳密な 'has-a'関係でクラスBを含むクラスAを持っています。 AにはBが含まれているのは理にかなっていますが、Bにはいくつかの具体的なメソッド呼び出ししかありません。ほとんどの部分のモデリングでは、クラスAのメソッドには実際のメリットがなく、 2つの関数呼び出しの欠点。構成OOP
class A():
b=B()
__init__(self):
self.a=[]
def addToA(self,a):
self.a.append(a)
def addToB(a):
# do something with self.a
b.addToB(a)
それはB.しかし、直接それ以外の場合はBに行く変更したときに特に必要とされている内のメソッドを提供する上で、人々の考えは何ですか:
z=A()
z.addToB(a)
z.b.methSpecificToB(x,y,z)
私は私はカプセル化を壊すんだよ感じますこれをやっているだけですが、余計なメソッドを用意するのではなく、より意味をなさせるものです。
'b 'は' self.b'で、 'addToB()'は 'self'を最初の記念碑とするべきでしょうか? –
こんにちはMartin、bはクラス属性であるため、すべてのインスタンスで共有する必要があります。私は実際のコードでこのコードを単純化しましたが、クラスBは実際にはデータベースのライブラリです... –