Projeto de implantação
Podemos ver o diagrama de estados como um complemento para o diagrama de classes. Neste diagrama podemos mostrar qual o estado em que o nosso objeto esta naquele momento. O diagrama de estado deve ser construído para os objetos que tem seus estados definidos e onde o comportamento do objeto muda por causa de um determinado estado.
São as seguintes vantagens: * É fácil de localizar as responsabilidades de estados específicos, devido a que os encontram nas classes que correspondem a cada estado. Isto proporciona uma maior clareza no desenvolvimento e na manutenção subsequente. Esta facilidade é fornecida pelo fato de que diferentes estados são representados por um único atributo (estado) e não envolvidos em diferentes variáveis e grandes condicionais. * Faz as mudanças de estado explícitas, posto que em otro tipo de implantação os estados são alterados, modificando os valores em variáveis, enquanto aqui fazer-se representar cada estado. * Os objetos Estado podem ser compartilhados se eles não contêm variáveis de instância, isto pode ser alcançado se o estado está totalmente codificado representando seu tipo. Quando isso é feito, os estados são flyweights sem estado intrínseco. * Facilita a expansão de estados. * Permite a um objeto alterar de classe em tempo de execução dado que ao modificar suas responsabilidades pela de outro objeto de outra classe, a herança e responsabilidades do primeiro mudaram pelas do segundo.
Desvantagem:
* Aumenta o número de subclasses.
Referencias
http://pt.wikipedia.org/wiki/State 04/05/2013 08:33 http://techblog.desenvolvedores.net/2011/06/07/diagrama-de-estado-uml/ 04/05/2013