Os autores de padrão devem selecionar um dos três tipos de UML (Linguagem de Modelagem Unificada) para definir o corpo do padrão. Os tipos aceitáveis são colaboração, classe e pacote. A maioria dos padrões são de colaboração, porque esse tipo é o mais flexível no aplicativo e design padrão.
Seguindo as regras UML 2.0, o tipo de padrão determina os tipos de elemento de destino permitidos no aplicativo padrão. Por exemplo, você pode aplicar com êxito um tipo de pacote do padrão para um pacote UML ou para um modelo UML (um modelo é um tipo de pacote); os pacotes podem ser possuidores de pacotes. No entanto, você não pode aplicar um padrão de pacote de tipos em uma classe UML; uma classe não pode ser possuidora de um pacote.
A lista a seguir mostra o tipo de destino permitido com base no tipo de padrão:
Durante o design, o autor do padrão pode limitar os tipos de destino permitidos limpando as opções no assistente Novo Padrão. Por exemplo, os destinos padrão para um padrão do tipo de colaboração podem ser limitados a classes.
Além das seguintes regras UML, ocorre um de dois comportamentos padrão no aplicativo padrão. Uma instância do padrão é incluída ao elemento de destino como um nó-filho ou o elemento de destino é modificado para que se torne a instância do padrão. O comportamento depende do design do autor de padrão e do tipo UML 2.0 do elemento de destino.
A tabela a seguir mostra os comportamentos padrão do aplicativo com base no tipo de padrão.
Tipo de padrão | ||||
---|---|---|---|---|
Tipo de Pacote | Tipo de Colaboração | Tipo de Classe | ||
Elemento de destino no modelo UML 2.0 |
Destino do Pacote | Inclui uma instância do padrão do tipo de pacote no destino. | Inclui uma instância do padrão do tipo de colaboração no destino. | Inclui uma instância do padrão do tipo de classe no destino. |
Destino de Colaboração | Não permitido. | Transforma a colaboração de destino em uma instância do padrão da colaboração do tipo; inclui parâmetros de padrão na instância. | Não permitido. | |
Destino de Classe | Não permitido. | Inclui uma instância do padrão do tipo de colaboração no destino. | Modifica a classe de destino, incluindo um estereótipo de padrão. Não inclui qualquer um dos parâmetros de padrão. |