·
Engenharia de Software ·
Linguagens de Programação
Envie sua pergunta para a IA e receba a resposta na hora
Recomendado para você
17
Padrões de Projeto em Programação Modular: Abordagens e Soluções
Linguagens de Programação
PUC
88
Fundamentos de Programação Orientada a Objetos
Linguagens de Programação
PUC
39
Programação Modular: Classes, Objetos e Construtores em Java
Linguagens de Programação
PUC
39
Programação Modular: Relacionamentos entre Classes e POO
Linguagens de Programação
PUC
24
Interfaces em Programação: Conceitos e Aplicações
Linguagens de Programação
PUC
29
Plano de Ensino: Programação Modular
Linguagens de Programação
PUC
20
Especialização e Herança em Programação Modular
Linguagens de Programação
PUC
28
Programação Modular: Enumeração em Java
Linguagens de Programação
PUC
21
Programação Modular: Classes Diferentes e Tarefas Comuns
Linguagens de Programação
PUC
42
Implementação de Sistema de Pedidos para Restaurante
Linguagens de Programação
PUC
Texto de pré-visualização
PROGRAMAÇÃO MODULAR HERANÇA MÚLTIPLA E O CONCEITO DE INTERFACE Prof João Caram PUC Minas Bacharelado em Engenharia de Software Um professor ministra aulas para diversas turmas e recebe um salário baseado na sua carga horária Um funcionário administrativo tem um salário base fixo e pode receber adicionais por função HERANÇA MÚLTIPLA Um Coordenador de curso aulas e tem funções administrativas Capacidade de uma classe herdar de duas ou mais superclasses C é uma linguagem que permite herança múltipla em seu código Aplicação combinação das características de várias classes na definição de uma nova classe HERANÇA MÚLTIPLA AMBIGUIDADES Coordenador coord double sal coordsalarioBruto Exemplos em situações reais de implementação HERANÇA MÚLTIPLA AMBIGUIDADES Se um objeto da classe Coordenador chamar salarioBruto qual dos métodos é executado Coordenador coord double sal coordsalarioBruto Um ebook é um livro e um arquivo Coordenador coord double sal sal coordProfessorsalarioBruto Um arquivo é uma entrada de dados e uma saída Coordenador coord double sal sal coordProfessorsalarioBruto Um smartphone é um eletrônico e um recarregável class Administrativo protected Setor setorAlocado double adicionalFuncao public virtual double salarioBruto baseadicional Um líder de projeto é um programador e um gerente class Coordenador public Professor public Administrativo public double salarioBruto override PUC Minas Bacharelado em Engenharia de Software Programação Modular Prof João Caram class Coordenador public Professor public Administrativo public double salarioBruto override HERANÇA MÚLTIPLA AMBIGUIDADES O problema não acaba por aí Métodos de nomes iguais e visibilidades diferentes Propriedades de mesmo nome Professor tem matrícula Administrativ o tem matrícula Pareçe impossível E se D myD new D myDmetodoZ PROBLEMA DO DIAMANTE PROBLEMA DO DIAMANTE PROBLEMA DO DIAMANTE Parece impossível Há soluções mas ainda assim a herança múltipla é em geral considerada uma solução pobre para um projeto Java e C não permitem herança múltipla Interface parte visível de um módulo a outros módulos Coesão a interface deve oferecer um grupo de métodos coerente Abstração se uma interface é definida e sempre é mantida o sistema ganha em extensibilidade e em baixo acoplamento Atributos encapsulados Métodos públicos e privados Ampliando a ideia o que é uma interface determinado conjunto de métodos que serão implementados em uma classe contrato que define tudo o que uma classe deve fazer se quiser ter um determinado status Poderíamos especificar uma interface independente Uma ou mais classes assinaram este contrato comprometendose a implementar o que foi especificado na interface Não disponível Poderíamos especificar uma interface independente Uma ou mais classes assinariam este contrato comprometendose a implementar o que foi especificado na interface Haveria um bom motivo Pensando Comportamento similar Pensando Comportamento similar Mesmo conjunto de métodos Mesmo conjunto de métodos Classes implementando a mesma interface Então Padrização na comunicação entre classes é um ótimo motivo Flexibilidade Polimorfismo Baixo acoplamento OBRIGADO Dúvidas
Envie sua pergunta para a IA e receba a resposta na hora
Recomendado para você
17
Padrões de Projeto em Programação Modular: Abordagens e Soluções
Linguagens de Programação
PUC
88
Fundamentos de Programação Orientada a Objetos
Linguagens de Programação
PUC
39
Programação Modular: Classes, Objetos e Construtores em Java
Linguagens de Programação
PUC
39
Programação Modular: Relacionamentos entre Classes e POO
Linguagens de Programação
PUC
24
Interfaces em Programação: Conceitos e Aplicações
Linguagens de Programação
PUC
29
Plano de Ensino: Programação Modular
Linguagens de Programação
PUC
20
Especialização e Herança em Programação Modular
Linguagens de Programação
PUC
28
Programação Modular: Enumeração em Java
Linguagens de Programação
PUC
21
Programação Modular: Classes Diferentes e Tarefas Comuns
Linguagens de Programação
PUC
42
Implementação de Sistema de Pedidos para Restaurante
Linguagens de Programação
PUC
Texto de pré-visualização
PROGRAMAÇÃO MODULAR HERANÇA MÚLTIPLA E O CONCEITO DE INTERFACE Prof João Caram PUC Minas Bacharelado em Engenharia de Software Um professor ministra aulas para diversas turmas e recebe um salário baseado na sua carga horária Um funcionário administrativo tem um salário base fixo e pode receber adicionais por função HERANÇA MÚLTIPLA Um Coordenador de curso aulas e tem funções administrativas Capacidade de uma classe herdar de duas ou mais superclasses C é uma linguagem que permite herança múltipla em seu código Aplicação combinação das características de várias classes na definição de uma nova classe HERANÇA MÚLTIPLA AMBIGUIDADES Coordenador coord double sal coordsalarioBruto Exemplos em situações reais de implementação HERANÇA MÚLTIPLA AMBIGUIDADES Se um objeto da classe Coordenador chamar salarioBruto qual dos métodos é executado Coordenador coord double sal coordsalarioBruto Um ebook é um livro e um arquivo Coordenador coord double sal sal coordProfessorsalarioBruto Um arquivo é uma entrada de dados e uma saída Coordenador coord double sal sal coordProfessorsalarioBruto Um smartphone é um eletrônico e um recarregável class Administrativo protected Setor setorAlocado double adicionalFuncao public virtual double salarioBruto baseadicional Um líder de projeto é um programador e um gerente class Coordenador public Professor public Administrativo public double salarioBruto override PUC Minas Bacharelado em Engenharia de Software Programação Modular Prof João Caram class Coordenador public Professor public Administrativo public double salarioBruto override HERANÇA MÚLTIPLA AMBIGUIDADES O problema não acaba por aí Métodos de nomes iguais e visibilidades diferentes Propriedades de mesmo nome Professor tem matrícula Administrativ o tem matrícula Pareçe impossível E se D myD new D myDmetodoZ PROBLEMA DO DIAMANTE PROBLEMA DO DIAMANTE PROBLEMA DO DIAMANTE Parece impossível Há soluções mas ainda assim a herança múltipla é em geral considerada uma solução pobre para um projeto Java e C não permitem herança múltipla Interface parte visível de um módulo a outros módulos Coesão a interface deve oferecer um grupo de métodos coerente Abstração se uma interface é definida e sempre é mantida o sistema ganha em extensibilidade e em baixo acoplamento Atributos encapsulados Métodos públicos e privados Ampliando a ideia o que é uma interface determinado conjunto de métodos que serão implementados em uma classe contrato que define tudo o que uma classe deve fazer se quiser ter um determinado status Poderíamos especificar uma interface independente Uma ou mais classes assinaram este contrato comprometendose a implementar o que foi especificado na interface Não disponível Poderíamos especificar uma interface independente Uma ou mais classes assinariam este contrato comprometendose a implementar o que foi especificado na interface Haveria um bom motivo Pensando Comportamento similar Pensando Comportamento similar Mesmo conjunto de métodos Mesmo conjunto de métodos Classes implementando a mesma interface Então Padrização na comunicação entre classes é um ótimo motivo Flexibilidade Polimorfismo Baixo acoplamento OBRIGADO Dúvidas