Trabalho PC II
Fazer os diagramas de UML, e outras técnicas como MVC ajudavam a reduzir a complexidade.
2) O que você entende por abstração? Dê um exemplo.
Abstração é o processo de extrair as características essenciais de um objeto real. A abstração é necessária para se ter um modelo fiel da realidade sobre a qual se possa operar. O conjunto de características resultante da abstração forma um tipo de dados abstrato com informações sobre seu estado e comportamento.
A abstração nem sempre produz os mesmos resultados, depende do contexto onde é utilizada. No exemplo do mapa mundial, para a china antiga o que vale seria o mapa antigo e para os geógrafos do mundo atual o que vale seria o mapa mundi atual, realista e detalhado.
No exemplo abaixo, toda a característica (atributos) e comportamento (métodos) comum a todos os mamíferos foi abstraído na classe abstrata Mamífero.
Classe abstrata não pode ser instanciada, em outras palavras não se pode criar objetos diretamente de Mamífero. A classe abstrata serve apenas para encapsular os métodos e atributos comuns a todos os mamíferos.
A partir da classe abstrata criamos as classes concretas, que podem ser instanciadas. São classes que representam um mamífero específico, que além de conter todo o comportamento e característica de um mamífero, possui seus próprios. Utilizamos a herança na orientação a objetos para estruturar esta relação.
3) De que maneira o uso da generalização/especialização pode contribuir para o desenvolvimento de um programa?
O uso de generalização/especialização é útil para diminuir a quantidade código de um programa. Criam-se classes de características mais amplas para servir a maioria dos processos, são as classes genéricas e outras de características mais específicas, as subclasses, responsável pelos processos mais especializados. Por exemplo: a classe computador é genérica da classe mainframe e microcomputador.
4) Comente