Sobes.tech
Junior

Pärast milliseid funktsioone saab panna punkti ja jätkata järgmise meetodi väljakutset?

sobes.tech AI

Vastus AI-lt

Sama klassi või sarnase liidesega klassi objekti tagastavad funktsioonid, mis võimaldavad jätkata kutsesüsteemi ahelat. See on võimalik tänu disainimustrile Method Chaining.

Selliste juhtumite näited:

  • Getterid, mis tagastavad objekti: objekt.getProperty().anotherMethod()
  • Setterid, mis tagastavad this: objekt.setProperty(väärtus).anotherProperty(väärtus2)
  • Meetodid, mis tagastavad uue objekti sama tüüpi: objekt.filter(...).sort(...)
  • Objektide loomine ja seadistamine: new Builder().step1().step2().build()
# Näide Method Chaining Pythonis
class Car:
    def __init__(self):
        self.color = None
        self.engine = None

    def set_color(self, color):
        self.color = color
        return self # Tagastab iseenda, et jätkata ahelat

    def set_engine(self, engine):
        self.engine = engine
        return self

    def drive(self):
        print(f"Sõitma {self.color} autoga, mille mootor on {self.engine}.")

# Method Chaining kasutamine
my_car = Car().set_color("punane").set_engine("V8")
my_car.drive()