Esiste una classe genitore con un metodo che molti bambini usano ma molti bambini estendono il metodo, qual è il modo migliore per estenderlo senza violare DRY?
Ecco le mie 2 soluzioni attuali:
1: Il genitore ha un metodo che chiama il codice riutilizzabile che è rilevante per tutte le sottoclassi (do_questo), quindi chiama un metodo specifico di classe che tutte le sottoclassi sostituiscono. per es.
class Parent(object):
def method(self):
self.do_this()
self.do_this_unique_to_class()
def do_this(self):
print 'every child wants to print this'
def do_this_unique_to_class(self):
pass
class Child(object):
def do_this_unique_class(self):
print 'Only class Child wants to print this'
2: Basta usare super e ogni bambino sovrascrive il metodo dei genitori. Non mi piace tanto questa soluzione. per es.
class Parent(object):
def do_this(self):
print 'every child wants to print this'
class Child(object):
def do_this(self):
# call parents do_this
super(Child, self).do_this()
# then extend it
print 'Only class Child wants to print this'