Em modelagem orientada a objetos usando Unified Modeling Language (UML) , a generalização refere-se à extração de elementos comuns em várias classes, conhecidas como subclasses , e suas associações compartilhados em uma classe geral ou superclasse. Segundo Hoffer , George e Valacich em " Sistemas modernos Projeto e Análise ", em modelagem UML , a generalização é representado " como uma linha sólida da subclasse para a superclasse , com um triângulo oco no final da , e na direção , a superclasse. "Usando generalização na modelagem UML é vantajoso porque promove a herança, reusabilidade , extensibilidade e simplicidade. Herança
generalização , uma subclasse herda os atributos de uma superclasse . Isso é benéfico , pois fornece uma maneira de distinguir atributos comuns de atributos únicos . No entanto , uma vez que uma subclasse é mais específica e uma superclasse é mais geral , uma criança ou subclasse pode herdar os atributos e comportamentos de um pai ou superclasse - mas não vice- versa. Por exemplo, se o animal é uma superclasse e cão é uma subclasse da superclasse animal, você pode indicar que cada cão é um animal, mas nem todo animal é um cachorro.
Reutilização
< br >
ao permitir que as classes de compartilhar atributos e comportamentos comuns , a prática de generalização na modelagem UML permite a reutilização , pois resulta em duplicação mínima. Desde subclasses herdam atributos gerais de uma superclasse , é possível reutilizar os atributos e comportamentos da superclasse para produzir várias subclasses. Além disso, ter classes de objetos com atributos e comportamentos genéricos pode ser valiosa no desenvolvimento do sistema , pois a reutilização é possível através de vários esforços de desenvolvimento de sistema sem ter que reinventar a roda a cada vez .
Extensibilidade
Generalização suporta extendability porque uma vez que você tenha definido uma superclasse , você pode continuar a criar atributos e comportamentos que são distinta da superclasse 'atributos e comportamentos em uma subclasse. Para ilustrar , usando o exemplo da superclasse animal, você pode adicionar subclasses adicionais, tais como uma subclasse de gato para a superclasse de animais sem ter que redefinir as características que tornam um gato um animal. Além disso, a superclasse de animais pode se tornar uma subclasse da superclasse seres vivos e uma nova subclasse de plantas pode ser criado sob a coisas vivas superclasse.
Simplicidade
generalização, classes de objetos são mais fáceis de gerir, porque você está simplificando o processo de classificação de objetos por predefinir comuns para subclasses uma vez através de uma superclasse. Então , você só precisa definir atributos distintos como você adicionar subclasses para a superclasse . Como resultado deste nível mais alto de abstração , você está usando menos objetos , o que reduz as complexidades associadas com a estruturação de uma hierarquia de classes em modelagem UML.