Sobes.tech
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()