Os padrões comportamentais são usados para gerenciar algoritmos e responsabilidades entre objetos e classes. Eles ajudam a garantir que as classes se comuniquem e cooperem de maneira eficiente e organizada, tornando o código mais fácil de ler e manter.
Padrões comportamentais cuidam da comunicação efetiva e atribuição de responsabilidades entre objetos.
classDiagram
class Subject {
+registerObserver(Observer o)
+removeObserver(Observer o)
+notifyObservers()
}
class Observer {
+update()
}
class ConcreteSubject {
-observers: Observer[]
+registerObserver(Observer o)
+removeObserver(Observer o)
+notifyObservers()
}
class ConcreteObserver {
-subject: Subject
+update()
}
Subject <|-- ConcreteSubject
Observer <|-- ConcreteObserver
ConcreteSubject --> Observer
ConcreteObserver --> Subject
O padrão Command encapsula uma solicitação como um objeto, permitindo que solicitações sejam transmitidas como objetos, armazenadas em logs, filas e suportando operações que podem ser desfeitas.
Ele consiste em cinco objetos: Receiver
, Command
, ConcreteCommand
, Invoker
e Client
.
Receiver
é responsável por executar a ação real associada a um comando.Command
atua como intermediário entre o objeto Receiver
e o objeto Invoker
.