• Home
  • Chat IA
  • Guru IA
  • Tutores
  • Central de ajuda
Home
Chat IA
Guru IA
Tutores

·

Engenharia de Software ·

Linguagens de Programação

Envie sua pergunta para a IA e receba a resposta na hora

Recomendado para você

Princípios SOLID e Programação Modular

20

Princípios SOLID e Programação Modular

Linguagens de Programação

PUC

Template Projeto Matematica Aplicada a Computacao - Circuitos Logicos

3

Template Projeto Matematica Aplicada a Computacao - Circuitos Logicos

Linguagens de Programação

PUC

Algoritmo de Huffman

1

Algoritmo de Huffman

Linguagens de Programação

PUC

Fundamentos de Programação Orientada a Objetos

88

Fundamentos de Programação Orientada a Objetos

Linguagens de Programação

PUC

Atividade no Visual Studio Simples

1

Atividade no Visual Studio Simples

Linguagens de Programação

PUC

Programação Modular: Classes, Objetos e Construtores em Java

39

Programação Modular: Classes, Objetos e Construtores em Java

Linguagens de Programação

PUC

Trabalho sobre Algoritimos

6

Trabalho sobre Algoritimos

Linguagens de Programação

PUC

Programação Modular: Herança Múltipla e Conceito de Interface

39

Programação Modular: Herança Múltipla e Conceito de Interface

Linguagens de Programação

PUC

Padrões de Projeto em Programação Modular: Abordagens e Soluções

17

Padrões de Projeto em Programação Modular: Abordagens e Soluções

Linguagens de Programação

PUC

Implementação de Sistema de Pedidos para Restaurante

42

Implementação de Sistema de Pedidos para Restaurante

Linguagens de Programação

PUC

Texto de pré-visualização

PROGRAMAÇÃO MODULAR Metas fundamentais Conceitos fundamentais para atingir as metas Princípios de programação OO S O L I D Single responsibility SRP Uma classe deve ter apenas um motivo para mudar Uma classe deve ter apenas um motivo para mudar Cartões CRC classresponsibilitycollaboration Cartões de papel 7x10 ou 10x15 cm descrevendo responsabilidades e colaborações de uma classe Classe Pedido Responsabilidades Saber seu id Saber sua data Agrupar comidas de um pedido único Controlar o número de comidas adicionadas Calcular o preço total considerando suas comidas Exibir relatório de nota de compra detalhando cada comida Colaborações Comida preço da comida Comida descrição Caso óbvio classes que acumulam funcionalidades de naturezas diferentes Ex um produto que gera um pedido de compra com vários produtos Caso menos óbvio classes que acumulam funcionalidades de naturezas diferentes Ex um pedido que gera um relatório de compra Caso menos óbvio classes que acumulam funcionalidades de naturezas diferentes Ex um pedido que gera um relatório de compra Caso mais sutil subdivisão das tarefas de uma classe Ex Relatório de vendas Uma única classe Caso mais sutil subdivisão das tarefas de uma classe Ex Relatório de vendas Mudança no conteúdo ordenação fonte de dados Mudança no formato texto pdf HTML Uma única classe Ex gerenciador de arquivos de vários formatos Viola o OCP necessidade de mudança no gerenciador para cada formato Ex gerenciador de arquivos de vários formatos Obedece o OCP abstração e gerenciador estável Violação comum do OCP Reescrevendo a impressora se mudar o modo de impressão class Impressora private LinkedListDocumento documentos private String tipo public Impressora initpretoBranco public ImpressoraString modo initmodo Violação comum do OCP Reescrevendo a impressora se mudar o modo de impressão class Impressora private LinkedListDocumento documentos private String tipo public initString modo ifmodoequalspretoBranco modoequalscolorido thistipo modo thisdocumentos new LinkedListDocumento Violação comum do OCP Reescrevendo a impressora se mudar o modo de impressão public double imprimirDocumento Documento documento documentospollFirst ifthistipoequalspretoBranco return documentogetPaginas075 else ifthistipoequalscolorido return documentogetPaginas140 Em concordância com OCP impressora não muda Impressora imp new Impressora class Impressora private EModoImpressao modoImpressao private LinkedListDocumento documentos public Impressora initEModoImpressaoPRETOBRANCO Em concordância com OCP impressora não muda Impressora imp new Impressora class Impressora private EModoImpressao modoImpressao private LinkedListDocumento documentos private void initEModoImpressao modo thismodoImpressao modo thisdocumentos new LinkedListDocumento Em concordância com OCP impressora não muda Impressora imp new Impressora double valorACobrar impimprimirDocumento class Impressora public double imprimirDocumento Documento doc thisdocumentospollFirst return modoImpressaovalordocgetPaginas Objetos que fazem parte de um sistema de software podem ser substituídos por instâncias de seus subtipos sem prejuízo para a correção do sistema Violação comum do LSP verificação de tipo em tempo de execução Violação comum do LSP verificação de tipo em tempo de execução No App ifcomidagetClassequalsPizzaclass comidasetPrecoBase25d else ifcomidagetClassequalsSanduicheclass comidasetPrecoBase13d Violação comum do LSP verificação de tipo em tempo de execução Crime grave Em concordância com LSP Comida comida new Pizza class Pizza extends Comida private static final double PRECOBASE 25d public Pizza superPizza thissetPrecoBasePRECOBASE Em concordância com LSP Comida comida new Pizza Comida outraComida new Sanduiche class Sanduiche extends Comida private static final double PRECOBASE 13d public Sanduiche superSanduiche thissetPrecoBasePRECOBASE Violação comum do LSP verificação de tipo em tempo de execução No App double preco ifimpressoragetTipoequalspretoBranco preco documentogetPaginas075 else ifimpressoragetTipoequalscolorido preco documentogetPaginas140 Em concordância com LSP Impressora imp new ImpressoraColorida class ImpressoraColorida extends Impressora public ImpressoraColorida superEModoImpressaoCOLORIDO Em concordância com LSP Impressora imp new ImpressoraColorida imp new ImpressoraPeB class ImpressoraPeB extends Impressora public ImpressoraPeB superEModoImpressaoPRETOBRANCO Em concordância com LSP Impressora imp new ImpressoraColorida imp new ImpressoraPeB double valor impimprimirDocumento abstract class Impressora public double imprimirDocumento Documento doc thisdocumentospollFirst return modoImpressaovalordocgetPaginas Violação sutil uso da herança desconsiderando o comportamento Ex quadrado herdando de retângulo Violação sutil do LSP desconsiderando regras de comportamento Rectangle x new Square5 xsetHeight8 Violação sutil uso da herança desconsiderando o comportamento Ex quadrado herdando de retângulo O crime continua grave porém requer um pouco mais de experiência para ser percebido Violação sutil do LSP desconsiderando regras de comportamento Rectangle x new Square5 xsetHeight8 Violação sutil do LSP desconsiderando regras de comportamento Violação do LSP regra não respeitada Rectangle x new Square5 xsetHeight8 Violação sutil do LSP desconsiderando regras de comportamento Violação do LSP regra não respeitada Rectangle x new Square5 xsetHeight8 public double dobrarRectangle x xsetHeightxgetHeight2 return xarea Ex quadrado herdando de retângulo Em resumo herança deve considerar éum para comportamento do objeto Classescliente não devem ser obrigadas a depender de interfaces ou métodos os quais não usam Atenção para herança composição e associação Usar o serviço x realizar o serviço interface IConta double sacardouble valor bool depositardouble valor double renderdouble taxa double pagarTaxadouble valor Conceitos relacionados Coesão abstração e encapsulamento Relação com SRP interface IConta double sacardouble valor bool depositardouble valor double renderdouble taxa double pagarTaxadouble valor interface IContaCorrente double sacardouble valor bool depositardouble valor interface IInvestimento double renderdouble taxa double pagarTaxadouble valor Ex Uma porta Um temporizador timer Uma porta de geladeira que deve disparar um alarme se ficar mais de 20s aberta ISP INTERFACES E COMPOSIÇÃO Violação do ISP Nem toda porta é temporizável Nem toda porta é temporizável Melhorando o uso de interfaces Separando papéis e além disso respeitando SRP É responsabilidade da porta marcar o tempo Módulos de alto nível não devem depender de módulos de baixo nível Ambos devem depender de abstrações Ex Um sistema de uma loja que vende telefones Viola o DIP sistema depende de cada tipo de telefone Ex Um sistema de uma loja que vende telefones Obedecendo o DIP todos dependem de uma abstração Ex Um botão para controlar uma lâmpada Ex Um botão para controlar uma lâmpada Viola o DIP botão depende de métodos da lâmpada Ex Um botão para controlar um chaveável Obedece ao DIP ambos usam a interface Nenhuma variável deveria conter referência para uma classe concreta Nenhuma classe deveria derivar de uma classe concreta Nenhum método deveria sobrescrever métodos implementados em sua classe base OBRIGADO Dúvidas

Envie sua pergunta para a IA e receba a resposta na hora

Recomendado para você

Princípios SOLID e Programação Modular

20

Princípios SOLID e Programação Modular

Linguagens de Programação

PUC

Template Projeto Matematica Aplicada a Computacao - Circuitos Logicos

3

Template Projeto Matematica Aplicada a Computacao - Circuitos Logicos

Linguagens de Programação

PUC

Algoritmo de Huffman

1

Algoritmo de Huffman

Linguagens de Programação

PUC

Fundamentos de Programação Orientada a Objetos

88

Fundamentos de Programação Orientada a Objetos

Linguagens de Programação

PUC

Atividade no Visual Studio Simples

1

Atividade no Visual Studio Simples

Linguagens de Programação

PUC

Programação Modular: Classes, Objetos e Construtores em Java

39

Programação Modular: Classes, Objetos e Construtores em Java

Linguagens de Programação

PUC

Trabalho sobre Algoritimos

6

Trabalho sobre Algoritimos

Linguagens de Programação

PUC

Programação Modular: Herança Múltipla e Conceito de Interface

39

Programação Modular: Herança Múltipla e Conceito de Interface

Linguagens de Programação

PUC

Padrões de Projeto em Programação Modular: Abordagens e Soluções

17

Padrões de Projeto em Programação Modular: Abordagens e Soluções

Linguagens de Programação

PUC

Implementação de Sistema de Pedidos para Restaurante

42

Implementação de Sistema de Pedidos para Restaurante

Linguagens de Programação

PUC

Texto de pré-visualização

PROGRAMAÇÃO MODULAR Metas fundamentais Conceitos fundamentais para atingir as metas Princípios de programação OO S O L I D Single responsibility SRP Uma classe deve ter apenas um motivo para mudar Uma classe deve ter apenas um motivo para mudar Cartões CRC classresponsibilitycollaboration Cartões de papel 7x10 ou 10x15 cm descrevendo responsabilidades e colaborações de uma classe Classe Pedido Responsabilidades Saber seu id Saber sua data Agrupar comidas de um pedido único Controlar o número de comidas adicionadas Calcular o preço total considerando suas comidas Exibir relatório de nota de compra detalhando cada comida Colaborações Comida preço da comida Comida descrição Caso óbvio classes que acumulam funcionalidades de naturezas diferentes Ex um produto que gera um pedido de compra com vários produtos Caso menos óbvio classes que acumulam funcionalidades de naturezas diferentes Ex um pedido que gera um relatório de compra Caso menos óbvio classes que acumulam funcionalidades de naturezas diferentes Ex um pedido que gera um relatório de compra Caso mais sutil subdivisão das tarefas de uma classe Ex Relatório de vendas Uma única classe Caso mais sutil subdivisão das tarefas de uma classe Ex Relatório de vendas Mudança no conteúdo ordenação fonte de dados Mudança no formato texto pdf HTML Uma única classe Ex gerenciador de arquivos de vários formatos Viola o OCP necessidade de mudança no gerenciador para cada formato Ex gerenciador de arquivos de vários formatos Obedece o OCP abstração e gerenciador estável Violação comum do OCP Reescrevendo a impressora se mudar o modo de impressão class Impressora private LinkedListDocumento documentos private String tipo public Impressora initpretoBranco public ImpressoraString modo initmodo Violação comum do OCP Reescrevendo a impressora se mudar o modo de impressão class Impressora private LinkedListDocumento documentos private String tipo public initString modo ifmodoequalspretoBranco modoequalscolorido thistipo modo thisdocumentos new LinkedListDocumento Violação comum do OCP Reescrevendo a impressora se mudar o modo de impressão public double imprimirDocumento Documento documento documentospollFirst ifthistipoequalspretoBranco return documentogetPaginas075 else ifthistipoequalscolorido return documentogetPaginas140 Em concordância com OCP impressora não muda Impressora imp new Impressora class Impressora private EModoImpressao modoImpressao private LinkedListDocumento documentos public Impressora initEModoImpressaoPRETOBRANCO Em concordância com OCP impressora não muda Impressora imp new Impressora class Impressora private EModoImpressao modoImpressao private LinkedListDocumento documentos private void initEModoImpressao modo thismodoImpressao modo thisdocumentos new LinkedListDocumento Em concordância com OCP impressora não muda Impressora imp new Impressora double valorACobrar impimprimirDocumento class Impressora public double imprimirDocumento Documento doc thisdocumentospollFirst return modoImpressaovalordocgetPaginas Objetos que fazem parte de um sistema de software podem ser substituídos por instâncias de seus subtipos sem prejuízo para a correção do sistema Violação comum do LSP verificação de tipo em tempo de execução Violação comum do LSP verificação de tipo em tempo de execução No App ifcomidagetClassequalsPizzaclass comidasetPrecoBase25d else ifcomidagetClassequalsSanduicheclass comidasetPrecoBase13d Violação comum do LSP verificação de tipo em tempo de execução Crime grave Em concordância com LSP Comida comida new Pizza class Pizza extends Comida private static final double PRECOBASE 25d public Pizza superPizza thissetPrecoBasePRECOBASE Em concordância com LSP Comida comida new Pizza Comida outraComida new Sanduiche class Sanduiche extends Comida private static final double PRECOBASE 13d public Sanduiche superSanduiche thissetPrecoBasePRECOBASE Violação comum do LSP verificação de tipo em tempo de execução No App double preco ifimpressoragetTipoequalspretoBranco preco documentogetPaginas075 else ifimpressoragetTipoequalscolorido preco documentogetPaginas140 Em concordância com LSP Impressora imp new ImpressoraColorida class ImpressoraColorida extends Impressora public ImpressoraColorida superEModoImpressaoCOLORIDO Em concordância com LSP Impressora imp new ImpressoraColorida imp new ImpressoraPeB class ImpressoraPeB extends Impressora public ImpressoraPeB superEModoImpressaoPRETOBRANCO Em concordância com LSP Impressora imp new ImpressoraColorida imp new ImpressoraPeB double valor impimprimirDocumento abstract class Impressora public double imprimirDocumento Documento doc thisdocumentospollFirst return modoImpressaovalordocgetPaginas Violação sutil uso da herança desconsiderando o comportamento Ex quadrado herdando de retângulo Violação sutil do LSP desconsiderando regras de comportamento Rectangle x new Square5 xsetHeight8 Violação sutil uso da herança desconsiderando o comportamento Ex quadrado herdando de retângulo O crime continua grave porém requer um pouco mais de experiência para ser percebido Violação sutil do LSP desconsiderando regras de comportamento Rectangle x new Square5 xsetHeight8 Violação sutil do LSP desconsiderando regras de comportamento Violação do LSP regra não respeitada Rectangle x new Square5 xsetHeight8 Violação sutil do LSP desconsiderando regras de comportamento Violação do LSP regra não respeitada Rectangle x new Square5 xsetHeight8 public double dobrarRectangle x xsetHeightxgetHeight2 return xarea Ex quadrado herdando de retângulo Em resumo herança deve considerar éum para comportamento do objeto Classescliente não devem ser obrigadas a depender de interfaces ou métodos os quais não usam Atenção para herança composição e associação Usar o serviço x realizar o serviço interface IConta double sacardouble valor bool depositardouble valor double renderdouble taxa double pagarTaxadouble valor Conceitos relacionados Coesão abstração e encapsulamento Relação com SRP interface IConta double sacardouble valor bool depositardouble valor double renderdouble taxa double pagarTaxadouble valor interface IContaCorrente double sacardouble valor bool depositardouble valor interface IInvestimento double renderdouble taxa double pagarTaxadouble valor Ex Uma porta Um temporizador timer Uma porta de geladeira que deve disparar um alarme se ficar mais de 20s aberta ISP INTERFACES E COMPOSIÇÃO Violação do ISP Nem toda porta é temporizável Nem toda porta é temporizável Melhorando o uso de interfaces Separando papéis e além disso respeitando SRP É responsabilidade da porta marcar o tempo Módulos de alto nível não devem depender de módulos de baixo nível Ambos devem depender de abstrações Ex Um sistema de uma loja que vende telefones Viola o DIP sistema depende de cada tipo de telefone Ex Um sistema de uma loja que vende telefones Obedecendo o DIP todos dependem de uma abstração Ex Um botão para controlar uma lâmpada Ex Um botão para controlar uma lâmpada Viola o DIP botão depende de métodos da lâmpada Ex Um botão para controlar um chaveável Obedece ao DIP ambos usam a interface Nenhuma variável deveria conter referência para uma classe concreta Nenhuma classe deveria derivar de uma classe concreta Nenhum método deveria sobrescrever métodos implementados em sua classe base OBRIGADO Dúvidas

Sua Nova Sala de Aula

Sua Nova Sala de Aula

Empresa

Central de ajuda Contato Blog

Legal

Termos de uso Política de privacidade Política de cookies Código de honra

Baixe o app

4,8
(35.000 avaliações)
© 2025 Meu Guru®