Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Introduzione alla composizione | Sezione
Programmazione Orientata agli Oggetti in Python

bookIntroduzione alla composizione

Scorri per mostrare il menu

La composizione rappresenta una relazione di tipo has-a, in cui una classe contiene un'istanza di un'altra classe invece di ereditarla. Ad esempio, una Car ha un Engine. Questo differisce dall'ereditarietà, che modella una relazione di tipo 'is-a', come ad esempio Truck is a Vehicle.

1234567891011121314151617
class Engine: def start(self): return "Engine started" class Car: def __init__(self, brand, engine): self.brand = brand self.engine = engine # Car HAS an Engine def drive(self): return f"{self.brand}: {self.engine.start()}" engine = Engine() car = Car("Toyota", engine) print(car.drive())
copy

Car non eredita da Engine. Invece, contiene un oggetto Engine e lo utilizza per svolgere le sue funzioni. Questo mostra una relazione di tipo has-a, non is-a, rendendo il design più flessibile e facile da modificare in futuro.

Note
Nota

Si dovrebbe utilizzare la composizione quando sono necessarie parti flessibili, confini chiari e sostituzione del comportamento a runtime. Preferire l'ereditarietà quando una gerarchia is-a è evidente e stabile.

question mark

Qual è il principale vantaggio dell'utilizzo della composizione?

Seleziona la risposta corretta

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 15

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Sezione 1. Capitolo 15
some-alt