Junior
Po kurių funkcijų galima dėti tašką ir tęsti kito metodo kvietimą?
sobes.tech AI
Atsakymas iš AI
Tę patį klasės arba panašaus sąsajos su jausiančios klasės objektą grąžinančios funkcijos, leidžiančios tęsti iškvietimų grandinę. Tai įmanoma dėka dizaino šablono Method Chaining.
Tokių atvejų pavyzdžiai:
- Gretininkai, grąžinantys objektą:
objektas.getProperty().anotherMethod() - Seteriai, grąžinantys
this:objektas.setProperty(reikšmė).anotherProperty(reikšmė2) - Metodai, grąžinantys naują tą patį tipą objektą:
objektas.filter(...).sort(...) - Objektų kūrimas ir konfigūravimas:
new Builder().step1().step2().build()
# Pavyzdys su Method Chaining Python kalba
class Car:
def __init__(self):
self.color = None
self.engine = None
def set_color(self, color):
self.color = color
return self # Grąžina patį save, kad būtų galima tęsti grandinę
def set_engine(self, engine):
self.engine = engine
return self
def drive(self):
print(f"Vairuojant {self.color} automobilį su {self.engine} varikliu.")
# Method Chaining naudojimas
my_car = Car().set_color("raudona").set_engine("V8")
my_car.drive()