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