TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Os Padrões de Projeto - Command

Por:   •  10/8/2021  •  Artigo  •  3.685 Palavras (15 Páginas)  •  113 Visualizações

Página 1 de 15

Padrões de Projeto/Design Patterns - Command

Adriano Miguel Yock Correia1, Cesar Barretto Cristofoli1, Henrique Coldebella1

1Universidade Tecnológica Federal do Paraná – Campus Campo Mourão, Departamento de Engenharia Eletrônica

adrianoyock@gmail.com, cesarcristofoli46@gmail.com, henrique.coldebella@live.com

Abstract. This article aims to expose in a didactic way the behavioral design pattern known as Command. The Command pattern can easily be recognized as a behavioral method, of an abstract type (sender) that calls a method in an implementation of a different abstract type (recipient), which was encapsulated by the implementation of the command during its creation.

Resumo. Este artigo tem como finalidade expor de forma didática o padrão de projeto comportamental conhecido como Command. O padrão Command pode ser facilmente reconhecido como um método comportamental, de um tipo abstrato (remetente) que chama um método em uma implementação do tipo abstrato diferente (destinatário), este que foi encapsulado pela implementação do comando durante a sua criação.

1. Introdução

O conceito de padrões de projeto foi primariamente definido pelo arquiteto Christopher Alexander em seus livros: Notes on the Synthesis of Form, The Timeless Way of Building e A Pattern Language. Lá Alexander estabelece o que deveria ser considerado um ideal a se seguir ao dar luz à um projeto, seguindo as seguintes características básicas:        

        •         Encapsulamento;

        •         Generalidade;

        •         Equilíbrio;

        •         Abstração;

        •         Abertura;

        •         Combinatoriedade;

        Além disso, estabelecer uma forma efetiva de comunicar esses padrões são de extrema importância para passar adiante e normalizar o uso dos padrões, utilizando exemplos, contextos, nomes, problemas e soluções.

        Dito isso, foi enfim no ano de 1995, que os cientistas da computação Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides, surgiram com o livro Design Patterns: Elements of Reusable Objects-Oriented Software, onde a partir dele, os quatro passaram a ser conhecidos como “Gang of Four” ou “GoF”.

        No livro, os autores estabelecem 24 padrões de projeto de forma bastante didática, divididos em 3 tipos ou famílias, são estes:

        •         Padrões de Criação: são aqueles que adiam e/ou abstraem o processo de criação de objetos.

        •         Padrões Estruturais: são padrões que se preocupam na forma que as classes e os objetos se organizam em projetos maiores e complexos.

        •         Padrões de Comportamento: são padrões cuja função em um código se preocupa na distribuição de responsabilidades entre os objetos.

        Neste artigo, vamos nos concentrar em um padrão bastante popular de comportamento, muito utilizado principalmente na linguagem C++, esse padrão que irá ser explicado no decorrer deste artigo se chama Command, e possui uma importância muito grande, em especial na Engenharia Eletrônica, que será abordada mais especificamente adiante.        

2. Desenvolvimento

O padrão Command é um dos 11 padrões comportamentais dentre os 23 padrões de projeto. Como dito Command é um padrão de projeto comportamental que transforma um pedido em um objeto que contém toda a informação sobre o pedido. Com essa transformação permite que o usuário parametrize métodos com diferentes pedidos, atrase ou coloque a execução do pedido em uma fila, e suporte operações que não podem ser feitas. O padrão command na programação orientada a objetos, é criado um objeto na qual é usado para encapsular toda a informação necessária para executar uma ação ou acionar um evento em um momento futuro. Sua estrutura é relativamente simples, criamos uma estrutura para execução de comandos, sua estrutura é composta por: especificação do que é um comando; o comando propriamente dito; executor de comandos. A especificação de um comando é um item abstrato, trata-se apenas de um modelo de estrutura que todo comando deve seguir, sem uma implementação real. O comando é uma implementação que segue sua especificação. Por fim, o executor de comandos é um mecanismo para executar todos os comandos em um determinado contexto.

2.1. Aplicações do Command

Como visto anteriormente, o padrão de projeto command tem como base encapsular a informação necessária para realizar uma ação dentro de um objeto, podendo também servir como gatilho para realizar uma ação posteriormente. Essa informação inclui o nome do método, o objeto ao qual o método pertence e seus parâmetros.

        Encapsular uma solicitação como um objeto permite parametrizar clientes com diferentes solicitações, enfileirar e fazer um registro (log), além de possibilitar desfazer operações.

        Dentro do padrão de projeto command, há quatro termos que sempre estão associados, Command, Receiver, Invoker e Client. Ao utilizar o padrão command tem-se que: Command é o responsável pela declaração da interface utilizada para executar as ações que serão implementadas individualmente pelo ConcreteCommand; Receiver é o objeto que executa ações próprias por ele definida; Invoker é responsável por solicitar ao Command a execução da ação; Client.

[pic 1]

Figura 1. UML do padrão de projeto command

        A fim de facilitar o entendimento veremos uma aplicação prática tendo como exemplo um controle para automação residencial. Esse controle é responsável por controlar inúmeros equipamentos presentes na casa, tais como TV, ar-condicionado, iluminação, sistema de som dentre outros equipamentos.

        O controle possui botão para ligar e desligar, tal botão deve funcionar para todos os equipamentos individualmente. Além desse, possui botão de mais e menos, que funcionam de maneira diferente em cada equipamento, por exemplo na TV é responsável por mudar o canal, no sistema de som alterar o volume e no sistema de ar-condicionado ele muda a temperatura. Isso tudo é possível devido o padrão de projeto permitir parametrizar objetos com diferentes métodos, possibilitando um único botão modificar mais de um Receiver.

...

Baixar como (para membros premium)  txt (15 Kb)   pdf (135.9 Kb)   docx (259.4 Kb)  
Continuar por mais 14 páginas »
Disponível apenas no TrabalhosGratuitos.com