Junior
Po jakých funkcích lze vložit tečku a pokračovat voláním další metody?
sobes.tech AI
Odpověď od AI
Po funkcích, které vracejí objekt (včetně aktuálního objektu) téže třídy nebo třídy s podobným rozhraním, což umožňuje pokračovat v řetězci volání. To je možné díky návrhovému vzoru Method Chaining.
Příklady takových případů:
- Gettery vracející objekt:
objekt.getProperty().anotherMethod() - Settery vracející
this:objekt.setProperty(hodnota).anotherProperty(hodnota2) - Metody vracející nový objekt stejného typu:
objekt.filter(...).sort(...) - Vytváření a nastavování objektů:
new Builder().step1().step2().build()
# Příklad Method Chaining v Pythonu
class Car:
def __init__(self):
self.color = None
self.engine = None
def set_color(self, color):
self.color = color
return self # Vrací sám sebe pro pokračování řetězce
def set_engine(self, engine):
self.engine = engine
return self
def drive(self):
print(f"Jízda v {self.color} autě s motorem {self.engine}.")
# Použití Method Chaining
my_car = Car().set_color("červená").set_engine("V8")
my_car.drive()