40 lines
1.2 KiB
Python
40 lines
1.2 KiB
Python
# Relações entre classes: associação, agregação e composição
|
|
# Associação é um tipo de relação onde os objetos
|
|
# estão ligados dentro do sistema.
|
|
# Essa é a relação mais comum entre objetos e tem subconjuntos
|
|
# como agregação e composição (que veremos depois).
|
|
# Geralmente, temos uma associação quando um objeto tem
|
|
# um atributo que referencia outro objeto.
|
|
# A associação não especifica como um objeto controla
|
|
# o ciclo de vida de outro objeto.
|
|
class Escritor:
|
|
def __init__(self, nome) -> None:
|
|
self.nome = nome
|
|
self._ferramenta = None
|
|
|
|
@property
|
|
def ferramenta(self):
|
|
return self._ferramenta
|
|
|
|
@ferramenta.setter
|
|
def ferramenta(self, ferramenta):
|
|
self._ferramenta = ferramenta
|
|
|
|
|
|
class FerramentaDeEscrever:
|
|
def __init__(self, nome):
|
|
self.nome = nome
|
|
|
|
def escrever(self):
|
|
return f'{self.nome} está escrevendo'
|
|
|
|
|
|
escritor = Escritor('Luiz')
|
|
caneta = FerramentaDeEscrever('Caneta Bic')
|
|
maquina_de_escrever = FerramentaDeEscrever('Máquina')
|
|
escritor.ferramenta = maquina_de_escrever
|
|
|
|
print(caneta.escrever())
|
|
print(maquina_de_escrever.escrever())
|
|
print(escritor.ferramenta.escrever())
|