Ich habe eine Klasse A, die Klasse B im strengen Sinne einer "hat-a" -Beziehung Ie enthält. Es macht Sinn, dass A B enthält. Allerdings gibt es nur ein paar spezifische Methoden, die B betreffen. Ein Großteil der Modellierung wird dazu führen, dass Klasse A eine Methode hat, die Methoden der Klasse B ohne wirklichen Nutzen aufruft der Nachteil von zwei Funktionsaufrufen.Zusammensetzung 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)
Was sind die Gedanken der Menschen auf Methoden innerhalb einer Bereitstellung, die speziell erforderlich ist, wenn es ändert B. gehen jedoch direkt sonst B:
z=A()
z.addToB(a)
z.b.methSpecificToB(x,y,z)
Ich glaube, ich bin ich breche die Verkapselung Ein wenig tut dies jedoch mehr Sinn als einfach überflüssige Methoden zur Verfügung stellen.
Sollen "b" 'self.b' und' addToB() '' self' als erstes Agument sein? –
Hallo Martin, b sollte ein Klassenattribut sein und sollte unter allen Instanzen geteilt werden. Ich habe diesen Code im realen Code über vereinfacht vereinfacht. Klasse B ist eigentlich eine Bibliothek für eine Datenbank ... –