Este documento descreve a implementação do Padrão Observer para criar uma aplicação de monitoramento do tempo. O Padrão Observer define que objetos observadores sejam notificados automaticamente quando o estado de um objeto assunto for alterado. A aplicação terá uma classe DadosDoTempo que armazena as medições meteorológicas e notificará telas observadoras quando os dados forem atualizados.
Este documento apresenta uma retrospectiva histórica sobre a educação de jovens e adultos no Brasil, discutindo o alto índice de analfabetismo ao longo da história do país. Apresenta uma citação de Machado de Assis de 1879 destacando que apenas 30% da população brasileira sabia ler na época. Também traz uma notícia de 2003 mostrando que 30 milhões de brasileiros entre 15 e mais anos eram considerados analfabetos funcionais. O texto pretende analisar os condicionamentos que levaram a sociedade e
This document discusses key shifts in teacher education, including a move from product-oriented to process-oriented theories and a greater focus on practical experiences and classroom-centered research. It outlines different conceptions of teacher education, from traditional views of training to apply knowledge versus intellectual awareness. Models of language teacher education are presented, from the craft model focusing on observing experts to the reflective model of adapting one's own practice. Theories underlying these models and considerations for teacher education like the role of reflection, narratives, practical experience, research, and the experiences of both native and non-native teachers are also summarized.
Educacion Basada En Competencias En Un Mundo Globalnatalia navarro
El modelo actual del programa de educación preescolar es basado en competencias, y en esta presentación se refleja como es el impacto de el desarrollo de dichas competencias en la actualidad: Frente a un mundo global.
Este documento presenta una matriz para clasificar materiales y recursos de aprendizaje según diferentes criterios como el canal de percepción, la naturaleza, el origen y el uso. Se describen varios tipos de materiales para cada criterio y se citan referencias que sustentan su inclusión y aporte al aprendizaje. La matriz puede ser utilizada por docentes para seleccionar materiales según el nivel educativo, área curricular y capacidades que buscan desarrollar.
O documento descreve os padrões Observer e Strategy. Observer permite que objetos sejam notificados automaticamente sobre mudanças em outros objetos, enquanto Strategy encapsula algoritmos diferentes para serem usados de forma intercambiável.
O documento discute Design Patterns, estruturas de projeto reutilizáveis em programação orientada a objetos. Apresenta o que são Design Patterns, incluindo sua popularização após o livro "Design Patterns" de 1994, e lista 23 padrões comuns. Exemplos de Factory Method, Adapter e Observer são explicados detalhadamente ilustrando suas características e aplicações.
Padrões de projeto (design patterns) foram criados originalmente para engenharia civil e foram aplicados à engenharia de software para melhorar a qualidade e reduzir custos de manutenção. O livro "Design Patterns" classificou padrões em criação, estruturais e comportamentais. A aplicação de padrões traz benefícios como confiabilidade, redução de custos e legibilidade, apesar de potencial complexidade inicial.
O documento descreve uma simulação de um lago com patos usando orientação a objetos. Inicialmente, a herança foi usada para definir o comportamento dos patos, mas isso causou problemas quando os requisitos mudaram. Posteriormente, o padrão Strategy foi aplicado para encapsular os comportamentos de voo e de grasnar em classes separadas, permitindo a composição desses comportamentos nos objetos Pato.
Este documento apresenta uma retrospectiva histórica sobre a educação de jovens e adultos no Brasil, discutindo o alto índice de analfabetismo ao longo da história do país. Apresenta uma citação de Machado de Assis de 1879 destacando que apenas 30% da população brasileira sabia ler na época. Também traz uma notícia de 2003 mostrando que 30 milhões de brasileiros entre 15 e mais anos eram considerados analfabetos funcionais. O texto pretende analisar os condicionamentos que levaram a sociedade e
This document discusses key shifts in teacher education, including a move from product-oriented to process-oriented theories and a greater focus on practical experiences and classroom-centered research. It outlines different conceptions of teacher education, from traditional views of training to apply knowledge versus intellectual awareness. Models of language teacher education are presented, from the craft model focusing on observing experts to the reflective model of adapting one's own practice. Theories underlying these models and considerations for teacher education like the role of reflection, narratives, practical experience, research, and the experiences of both native and non-native teachers are also summarized.
Educacion Basada En Competencias En Un Mundo Globalnatalia navarro
El modelo actual del programa de educación preescolar es basado en competencias, y en esta presentación se refleja como es el impacto de el desarrollo de dichas competencias en la actualidad: Frente a un mundo global.
Este documento presenta una matriz para clasificar materiales y recursos de aprendizaje según diferentes criterios como el canal de percepción, la naturaleza, el origen y el uso. Se describen varios tipos de materiales para cada criterio y se citan referencias que sustentan su inclusión y aporte al aprendizaje. La matriz puede ser utilizada por docentes para seleccionar materiales según el nivel educativo, área curricular y capacidades que buscan desarrollar.
O documento descreve os padrões Observer e Strategy. Observer permite que objetos sejam notificados automaticamente sobre mudanças em outros objetos, enquanto Strategy encapsula algoritmos diferentes para serem usados de forma intercambiável.
O documento discute Design Patterns, estruturas de projeto reutilizáveis em programação orientada a objetos. Apresenta o que são Design Patterns, incluindo sua popularização após o livro "Design Patterns" de 1994, e lista 23 padrões comuns. Exemplos de Factory Method, Adapter e Observer são explicados detalhadamente ilustrando suas características e aplicações.
Padrões de projeto (design patterns) foram criados originalmente para engenharia civil e foram aplicados à engenharia de software para melhorar a qualidade e reduzir custos de manutenção. O livro "Design Patterns" classificou padrões em criação, estruturais e comportamentais. A aplicação de padrões traz benefícios como confiabilidade, redução de custos e legibilidade, apesar de potencial complexidade inicial.
O documento descreve uma simulação de um lago com patos usando orientação a objetos. Inicialmente, a herança foi usada para definir o comportamento dos patos, mas isso causou problemas quando os requisitos mudaram. Posteriormente, o padrão Strategy foi aplicado para encapsular os comportamentos de voo e de grasnar em classes separadas, permitindo a composição desses comportamentos nos objetos Pato.
Este capítulo apresenta os fundamentos da modelagem de software orientada a objetos, introduzindo conceitos como classes, objetos, abstração, encapsulamento, herança, polimorfismo e diagrama UML. Também discute a diferença entre arquitetura física e lógica.
O documento discute padrões de projeto de software, incluindo o Gang of Four que descreveu 23 padrões. Ele explica brevemente cinco padrões: template method, strategy, observer, singleton e iterator.
1. O documento apresenta um treinamento sobre padrões de projeto em Java, discutindo vários padrões de criação, estruturais e comportamentais.
2. São descritos os principais tópicos abordados em cada capítulo, incluindo introdução a sistemas corporativos, orientação a objetos, e vários padrões de projeto específicos.
3. O documento também contém exercícios e discussões para fixar os conceitos apresentados.
1. O documento apresenta um trabalho sobre padrões de projeto, descrevendo alguns padrões como Abstract Factory, Composite, Decorator, entre outros.
2. É apresentado um referencial teórico sobre conceitos como reutilização, encapsulamento, herança e polimorfismo importantes para padrões de projeto.
3. Exemplos em Java ilustram a aplicação de padrões como Abstract Factory, Composite, Decorator e outros.
Importância e origem da Engenharia de Software, dando uma visão geral de conteúdos que serão vistos na disciplinas.
Apresentação disponível em: http://prezi.com/laxsh8wsaiad/engenharia-de-software-introducao/
Bibliografia: Sommerville, 8.ª e 9.ª edição
Este documento contém:
1) Uma aula sobre HTML, XHTML e CSS, incluindo a criação de links e folhas de estilo.
2) Informações sobre como criar formulários HTML e os elementos que podem ser incluídos, como caixas de texto e botões.
3) Dicas sobre como adicionar estilo a elementos usando CSS, como bordas, fundos e padding.
G gpcwmlguth 02.009.030.004-video_dvr_-_internetMessias Castro
1) O documento fornece instruções detalhadas sobre a operação e configuração de um DVR de segurança stand alone de 4, 8 ou 16 canais.
2) Inclui detalhes sobre o login do usuário, navegação no menu, configuração de gravação, rede, alarmes, PTZ e outros parâmetros.
3) Também fornece informações sobre a instalação e operação do HD, solução de problemas e especificações técnicas.
O documento fornece um esquema de ligação para sistemas de segurança com câmeras e áudios. Ele mostra como conectar as fontes de alimentação, câmeras, microfones, cabos e conversores para o DVR e monitor.
Montando sites com XHTML e CSS utilizando os padrões webigorpimentel
O documento apresenta uma introdução sobre a história da web, desde sua criação por Tim Berners-Lee até os padrões atuais. Aborda conceitos como HTML, XHTML, CSS e a importância da semântica e dos padrões web para um código acessível.
Evolução de software 1 - Engenharia de SoftwareEduardo Mendes
A empresa de tecnologia anunciou um novo smartphone com câmera aprimorada, maior tela e bateria de longa duração. O dispositivo também possui processador mais rápido e armazenamento expansível. O novo modelo será lançado em outubro por um preço inicial de US$799.
Aplicação de Padrões de Projeto para a melhoria da manutenabilidade de softwareCesar Rocha
A comunidade de desenvolvimento de software vem adotando cada vez mais os conceitos propostos pelos padrões de projeto no processo de desenvolvimento de software. Estudos reportam evidências de que esses padrões causam um impacto positivo na qualidade do software, mas em alguns casos a adoção de padrões de projeto pode ser inapropriada. Esse trabalho monográfico relata a origem e os fundamentos dos padrões de projeto, e busca evidenciar a importância da aplicação de padrões para obter a excelência e a qualidade desejadas para os sistemas de software. Através de uma pesquisa bibliográfica esse trabalho evidenciou que a aplicação de padrões de projeto na fase de desenvolvimento do software é um recurso positivo nos processos futuros de manutenção. Fatores como reusabilidade, modularidade, uso de interfaces, composição de objetos, baixo acoplamento e alta coesão são diretamente manipulados através dos padrões de projeto e consequentemente promovem melhorias na manutenabilidade. Apesar dos benefícios proporcionados, os padrões de projeto também podem ter efeitos negativos sobre os sistemas de software.
O documento fornece uma introdução sobre sistemas de Circuito Fechado de TV (CFTV), definindo o que é CFTV e descrevendo suas principais partes e aplicações. Detalha os componentes básicos de um sistema CFTV, incluindo câmeras, monitores, cabos e fontes de energia. Também discute conceitos como sensibilidade da câmera, resolução, compensação de luz de fundo, dispositivos CCD e CMOS, tipos de lentes e suas funções.
Este artigo descreve (1) o paradigma de publish-subscribe e como ele fornece uma abordagem push-based para disseminar informações de forma persistente para múltiplos consumidores, (2) alguns middlewares que implementam este paradigma, incluindo suas características-chave como expressividade, topologia, eventos, transmissão e qualidade do serviço, e (3) exemplos de middlewares publish-subscribe como o Data Distribution System, WebSphere MQ e Tuxedo.
O documento apresenta um workshop sobre Design Patterns, abordando sua introdução e alguns padrões como Factory, Abstract Factory, Singleton, Adapter, Facade e MVC. A agenda inclui antes de começar, introdução, cuidados e tipos de padrões como creacionais, estruturais e comportamentais.
O padrão Observer define uma dependência entre objetos de modo que quando um objeto (sujeito) muda de estado, todos os seus observadores são notificados automaticamente. O padrão é aplicável quando uma abstração tem dois aspectos dependentes que podem variar independentemente, e quando objetos precisam ser notificados de mudanças sem conhecer quem são esses objetos.
O documento descreve o padrão Observer, no qual um sujeito notifica múltiplos observadores sobre mudanças de estado, permitindo que os observadores sejam adicionados dinamicamente sem alterar o código do sujeito. Ele discute duas abordagens possíveis para implementar o padrão, sendo uma onde o sujeito notifica ativamente os observadores e outra onde os observadores puxam ativamente as atualizações de estado do sujeito.
Padrão Observador (Orientação à Objetos)Teles Maciel
O documento descreve o padrão Observer usando um exemplo de um sistema hospitalar que monitora os sinais vitais de um paciente e notifica médicos e enfermeiros sobre quaisquer alterações. Ele explica as classes Subject, Observer e DisplayElement que caracterizam o padrão e como elas são implementadas no exemplo para monitorar e notificar sobre mudanças na pressão, batimentos cardíacos e temperatura de um paciente.
O documento fornece informações básicas sobre sistemas de Circuito Fechado de Televisão (CFTV), descrevendo seus principais componentes como iluminação, lentes, câmeras, monitores, gravadores e processadores. Também aborda conceitos importantes como espectro eletromagnético, tipos de iluminação e fatores que influenciam a qualidade da imagem em CFTV.
Este documento descreve o padrão de projeto Singleton e fornece detalhes sobre sua definição, motivação, características de uso e implementação. O padrão Singleton garante que uma classe só tenha uma única instância e fornece um ponto global de acesso a ela.
JavaScript - Introdução com Orientação a ObjetosEduardo Mendes
Este documento introduz o JavaScript e fornece uma visão geral de sua história, uso e conceitos-chave. Em particular:
1) Apresenta uma breve história do JavaScript, desde sua criação pela Netscape em 1995 até seu uso atual em milhões de páginas da web.
2) Discutem conceitos importantes como funções, funções anônimas e o uso de funções como parâmetros.
3) Fornece exemplos de como incorporar JavaScript em páginas web usando blocos <script>, arquivos externos e eventos em elementos HTML
O documento descreve a estrutura de pastas e arquivos de um projeto de uma imobiliária desenvolvido com AngularJS. A estrutura inclui páginas para imóveis e usuários, além de arquivos CSS, JavaScript e templates. O texto discute a organização dos arquivos e a implementação de rotas e controllers para exibir dinamicamente o conteúdo correto de acordo com a rota atual.
Este capítulo apresenta os fundamentos da modelagem de software orientada a objetos, introduzindo conceitos como classes, objetos, abstração, encapsulamento, herança, polimorfismo e diagrama UML. Também discute a diferença entre arquitetura física e lógica.
O documento discute padrões de projeto de software, incluindo o Gang of Four que descreveu 23 padrões. Ele explica brevemente cinco padrões: template method, strategy, observer, singleton e iterator.
1. O documento apresenta um treinamento sobre padrões de projeto em Java, discutindo vários padrões de criação, estruturais e comportamentais.
2. São descritos os principais tópicos abordados em cada capítulo, incluindo introdução a sistemas corporativos, orientação a objetos, e vários padrões de projeto específicos.
3. O documento também contém exercícios e discussões para fixar os conceitos apresentados.
1. O documento apresenta um trabalho sobre padrões de projeto, descrevendo alguns padrões como Abstract Factory, Composite, Decorator, entre outros.
2. É apresentado um referencial teórico sobre conceitos como reutilização, encapsulamento, herança e polimorfismo importantes para padrões de projeto.
3. Exemplos em Java ilustram a aplicação de padrões como Abstract Factory, Composite, Decorator e outros.
Importância e origem da Engenharia de Software, dando uma visão geral de conteúdos que serão vistos na disciplinas.
Apresentação disponível em: http://prezi.com/laxsh8wsaiad/engenharia-de-software-introducao/
Bibliografia: Sommerville, 8.ª e 9.ª edição
Este documento contém:
1) Uma aula sobre HTML, XHTML e CSS, incluindo a criação de links e folhas de estilo.
2) Informações sobre como criar formulários HTML e os elementos que podem ser incluídos, como caixas de texto e botões.
3) Dicas sobre como adicionar estilo a elementos usando CSS, como bordas, fundos e padding.
G gpcwmlguth 02.009.030.004-video_dvr_-_internetMessias Castro
1) O documento fornece instruções detalhadas sobre a operação e configuração de um DVR de segurança stand alone de 4, 8 ou 16 canais.
2) Inclui detalhes sobre o login do usuário, navegação no menu, configuração de gravação, rede, alarmes, PTZ e outros parâmetros.
3) Também fornece informações sobre a instalação e operação do HD, solução de problemas e especificações técnicas.
O documento fornece um esquema de ligação para sistemas de segurança com câmeras e áudios. Ele mostra como conectar as fontes de alimentação, câmeras, microfones, cabos e conversores para o DVR e monitor.
Montando sites com XHTML e CSS utilizando os padrões webigorpimentel
O documento apresenta uma introdução sobre a história da web, desde sua criação por Tim Berners-Lee até os padrões atuais. Aborda conceitos como HTML, XHTML, CSS e a importância da semântica e dos padrões web para um código acessível.
Evolução de software 1 - Engenharia de SoftwareEduardo Mendes
A empresa de tecnologia anunciou um novo smartphone com câmera aprimorada, maior tela e bateria de longa duração. O dispositivo também possui processador mais rápido e armazenamento expansível. O novo modelo será lançado em outubro por um preço inicial de US$799.
Aplicação de Padrões de Projeto para a melhoria da manutenabilidade de softwareCesar Rocha
A comunidade de desenvolvimento de software vem adotando cada vez mais os conceitos propostos pelos padrões de projeto no processo de desenvolvimento de software. Estudos reportam evidências de que esses padrões causam um impacto positivo na qualidade do software, mas em alguns casos a adoção de padrões de projeto pode ser inapropriada. Esse trabalho monográfico relata a origem e os fundamentos dos padrões de projeto, e busca evidenciar a importância da aplicação de padrões para obter a excelência e a qualidade desejadas para os sistemas de software. Através de uma pesquisa bibliográfica esse trabalho evidenciou que a aplicação de padrões de projeto na fase de desenvolvimento do software é um recurso positivo nos processos futuros de manutenção. Fatores como reusabilidade, modularidade, uso de interfaces, composição de objetos, baixo acoplamento e alta coesão são diretamente manipulados através dos padrões de projeto e consequentemente promovem melhorias na manutenabilidade. Apesar dos benefícios proporcionados, os padrões de projeto também podem ter efeitos negativos sobre os sistemas de software.
O documento fornece uma introdução sobre sistemas de Circuito Fechado de TV (CFTV), definindo o que é CFTV e descrevendo suas principais partes e aplicações. Detalha os componentes básicos de um sistema CFTV, incluindo câmeras, monitores, cabos e fontes de energia. Também discute conceitos como sensibilidade da câmera, resolução, compensação de luz de fundo, dispositivos CCD e CMOS, tipos de lentes e suas funções.
Este artigo descreve (1) o paradigma de publish-subscribe e como ele fornece uma abordagem push-based para disseminar informações de forma persistente para múltiplos consumidores, (2) alguns middlewares que implementam este paradigma, incluindo suas características-chave como expressividade, topologia, eventos, transmissão e qualidade do serviço, e (3) exemplos de middlewares publish-subscribe como o Data Distribution System, WebSphere MQ e Tuxedo.
O documento apresenta um workshop sobre Design Patterns, abordando sua introdução e alguns padrões como Factory, Abstract Factory, Singleton, Adapter, Facade e MVC. A agenda inclui antes de começar, introdução, cuidados e tipos de padrões como creacionais, estruturais e comportamentais.
O padrão Observer define uma dependência entre objetos de modo que quando um objeto (sujeito) muda de estado, todos os seus observadores são notificados automaticamente. O padrão é aplicável quando uma abstração tem dois aspectos dependentes que podem variar independentemente, e quando objetos precisam ser notificados de mudanças sem conhecer quem são esses objetos.
O documento descreve o padrão Observer, no qual um sujeito notifica múltiplos observadores sobre mudanças de estado, permitindo que os observadores sejam adicionados dinamicamente sem alterar o código do sujeito. Ele discute duas abordagens possíveis para implementar o padrão, sendo uma onde o sujeito notifica ativamente os observadores e outra onde os observadores puxam ativamente as atualizações de estado do sujeito.
Padrão Observador (Orientação à Objetos)Teles Maciel
O documento descreve o padrão Observer usando um exemplo de um sistema hospitalar que monitora os sinais vitais de um paciente e notifica médicos e enfermeiros sobre quaisquer alterações. Ele explica as classes Subject, Observer e DisplayElement que caracterizam o padrão e como elas são implementadas no exemplo para monitorar e notificar sobre mudanças na pressão, batimentos cardíacos e temperatura de um paciente.
O documento fornece informações básicas sobre sistemas de Circuito Fechado de Televisão (CFTV), descrevendo seus principais componentes como iluminação, lentes, câmeras, monitores, gravadores e processadores. Também aborda conceitos importantes como espectro eletromagnético, tipos de iluminação e fatores que influenciam a qualidade da imagem em CFTV.
Este documento descreve o padrão de projeto Singleton e fornece detalhes sobre sua definição, motivação, características de uso e implementação. O padrão Singleton garante que uma classe só tenha uma única instância e fornece um ponto global de acesso a ela.
JavaScript - Introdução com Orientação a ObjetosEduardo Mendes
Este documento introduz o JavaScript e fornece uma visão geral de sua história, uso e conceitos-chave. Em particular:
1) Apresenta uma breve história do JavaScript, desde sua criação pela Netscape em 1995 até seu uso atual em milhões de páginas da web.
2) Discutem conceitos importantes como funções, funções anônimas e o uso de funções como parâmetros.
3) Fornece exemplos de como incorporar JavaScript em páginas web usando blocos <script>, arquivos externos e eventos em elementos HTML
O documento descreve a estrutura de pastas e arquivos de um projeto de uma imobiliária desenvolvido com AngularJS. A estrutura inclui páginas para imóveis e usuários, além de arquivos CSS, JavaScript e templates. O texto discute a organização dos arquivos e a implementação de rotas e controllers para exibir dinamicamente o conteúdo correto de acordo com a rota atual.
O documento discute conceitos e funcionalidades do framework JavaScript AngularJS. Em particular, apresenta diretivas como ng-app, ng-controller e ng-repeat que permitem adicionar comportamentos dinâmicos ao HTML, além de explicar sobre módulos, controles e expressões no AngularJS.
O documento discute o padrão Singleton, que garante a criação de uma única instância de uma classe e fornece um ponto global de acesso a ela. Isso é feito através de um construtor privado e um método estático getInstance() que retorna a instância única. O padrão é útil quando precisamos de acesso global a um único objeto ou recurso compartilhado.
O documento discute estratégias para criar layouts responsivos utilizando medidas flexíveis como porcentagens e unidades em. Aborda como converter layouts fixos para fluidos, utilizar imagens responsivas e limitar layouts fluidos em telas muito grandes.
O documento discute estratégias de design responsivo para websites adaptarem-se a diferentes dispositivos. Aborda tags semânticas do HTML5 que melhoram a acessibilidade e o SEO, além de técnicas como viewport, grid layout fluido, imagens flexíveis e media queries para estilização condicional de acordo com características dos dispositivos.
Este documento apresenta exemplos de como dividir uma página em seções usando HTML e CSS, como adicionar estilos a elementos e como organizar o layout de uma página. Inclui exemplos de como posicionar elementos com float e position e ajustar paddings, margins e cores.
O documento descreve a história da Internet e da World Wide Web, como o HTTP e o HTML permitem a comunicação entre clientes e servidores, e algumas tecnologias que permitem criar páginas dinâmicas, como CGI, APIs e scripts do lado do servidor.
O documento discute o framework JavaScript Sencha ExtJS, que permite a implementação de aplicações ricas para a web. O ExtJS é baseado em componentes e possui grande comunidade de desenvolvedores. Ele pode integrar com outros frameworks e tecnologias como PHP, Rails e Spring para a parte do servidor.
O documento discute refatoração de código jQuery para uma abordagem baseada em objetos. Ele apresenta como refatorar handlers de eventos e requisições Ajax para uma função construtora Receita(), encapsulando o comportamento de cada receita em um objeto. Isso permite gerenciar múltiplas receitas de forma independente ao invés de usar um objeto literal único.
O documento discute o jQuery, uma biblioteca JavaScript que facilita a manipulação de documentos HTML, tratamento de eventos e animações. Em três frases:
(1) jQuery é uma biblioteca JavaScript rápida, pequena e rica em recursos que permite percorrer e manipular documentos HTML, tratar eventos e animações, facilitando também o uso de AJAX; (2) Algumas formas de usar jQuery incluem encontrar elementos no HTML, alterar conteúdo, ouvir eventos do usuário e comunicar-se pela rede; (3) jQuery utiliza seletores CSS para
Estimativas de Esforço - Engenharia de SoftwareEduardo Mendes
O documento discute estimativas de esforço para projetos de software e apresenta três abordagens: Análise de Pontos de Função, Pontos de Caso de Uso e métricas ágeis como Pontos de Estórias de Usuário. O autor também discute como calcular o esforço usando essas métricas e quais fatores influenciam as estimativas.
Java web 6 JSP Expression Language Taglib parte 2Eduardo Mendes
O documento apresenta o uso de JSP e Servlets para recuperar atributos em requisições. Há dois códigos JSP mostrados: um usa Expression Language (EL) para recuperar atributos de forma simplificada, enquanto o outro usa código Java embutido para recuperar os mesmos atributos. O documento também explica os principais operadores e funcionalidades da EL, como o uso de pontos, colchetes e tags como <c:if>.
The document discusses Rails model validations which ensure only valid objects are persisted to the database. It describes different validation methods like presence, length, numericality, and uniqueness that can be applied to model attributes. These validations are triggered during create, save, update, and update_attributes and allow specifying validation criteria like minimum or maximum length, numeric comparisons, and unique values within a scoped context.
O documento discute o padrão Iterator para permitir que objetos de coleções diferentes sejam iterados de forma uniforme. O padrão encapsula a iteração através da interface Iterator e classes concretas de Iterator para cada tipo de coleção, removendo dependências do código cliente. Isso permite que a garçonete imprima menus de forma genérica, independente da implementação interna de cada menu.
O documento descreve o padrão Template Method, no qual uma classe abstrata define o esqueleto de um algoritmo através de um método gabarito. Algumas etapas do algoritmo podem ser implementadas por subclasses concretas, permitindo variações no processo sem alterar a estrutura geral.
O documento descreve o padrão de projeto Command. Ele encapsula solicitações como objetos comando que contêm toda a informação necessária para executar uma ação ou acionar um objeto. Um invocador pode executar diferentes comandos sem saber o que eles realmente fazem. Isso permite parametrizar clientes, enfileirar comandos e desfazer ações.
O documento descreve o Padrão de Projeto Facade. A Facade simplifica a interface de um subsistema complexo, ocultando sua complexidade e fornecendo uma interface unificada e fácil de usar.
O documento descreve o Padrão Adapter, que permite que classes com interfaces incompatíveis trabalhem juntas. Um exemplo mostra um PeruAdapter que implementa a interface Pato para permitir que um objeto Peru seja usado onde um Pato é esperado. O Adapter faz a tradução entre as interfaces incompatíveis do Peru e do Pato.
Este documento fornece um resumo sobre desenvolvimento de conteúdo web para dispositivos móveis. Apresenta estratégias como não fazer nada, conteúdo adaptado e versão móvel específica. Também discute breve história das linguagens móveis, HTML5, CSS e web design responsivo.
4. A classe DadosDoTempo
Retorna as medições
mais recentes
Este objeto sabe como
obter estas informações
/**
* Este método é executado
* sempre que as medidas
* meteorológicas forem alteradas
*
*/
public void medicoesAlteradas() {
//seu código aqui
}
5. A classe DadosDoTempo
Tarefa:
Implementar
medicoesAlteradas() de
modo que atualize as três
visões: condições
climáticas atuais, status
meteorológico e previsão
6. Juntando as informações
A classe DadosDoTempo possui métodos para
obter 3 medições diferentes:
Temperatura
Umidade
Pressão
O método medicoesAlteradas é chamado
sempre que dados de medição estão
disponíveis (Não sabemos como esse método
é chamado, apenas que ele é)
7. Requisitos
Precisamos implementar 3 elementos de
exibição que usem os dados meteorológicos
Condições Atuais
Estatísticas
Previsão
Tela 1 Tela 2
10. Como funciona o padrão Observer?
Como uma assinatura de revista ou jornal
Uma editora publica uma revista
Você assina a revista e sempre recebe novas
edições
Enquanto assinante continua recebendo revistas
Você cancela a assinatura quando não quer mais
receber as revistas
Enquanto a editora permanecer em um negócio,
outras pessoas, empresas e companhias podem
assinar e cancelar o recebimento da revista
11. Da revista para o padrão
Editora Assunto (Subject)
Assinantes Observadores (Observers)
13. O Pato informa ao Objeto Assunto que
quer ser um observador
Objeto Leitor
Objeto Leitor
Objeto Leitor
Objetos observadores
Objeto NovoLeitor
Objeto Assunto
14. Agora o NovoLeitor é um
observador
Objeto Leitor
Objeto Leitor
Objeto Leitor
Objetos observadores
Objeto NovoLeitor
Objeto Assunto
15. O Assunto recebe um novo valor
Objeto Leitor
Objeto Leitor
Objeto Leitor
Objetos observadores
Objeto NovoLeitor
Objeto Assunto
16. O objeto Rato não quer mais ser um
observador
Objeto Leitor
Objeto Leitor
Objeto Leitor
Objetos observadores
Objeto NovoLeitor
remova/cancele minha assinatura
Objeto Assunto
17. Um leitor está fora
Objeto Leitor
Objeto Leitor
Objeto Leitor
Objetos observadores
Objeto NovoLeitor
Objeto Assunto
18. O Assunto recebe um novo valor
Objeto Leitor
Objeto Leitor
Objeto Leitor
Objetos observadores
Objeto NovoLeitor
Objeto Assunto
19. Segundo Padrão
OBSERVER
O Padrão Observer define a dependência
um-para-muitos entre objetos para que,
quando um objeto mude de estado, todos os
seus dependentes sejam avisados e
atualizados automaticamente.
22. A dependência entre os participantes
O Assunto é o objeto que contém o estado e que o
controla
Existe apenas UM assunto
com estado
Objeto Leitor
Objeto Leitor
Objeto Leitor
Objetos observadores
Objeto NovoLeitor
Objeto Assunto
23. A dependência entre os participantes
Os observadores usam este estado quando
necessário ainda que não pertença a eles
Objeto Leitor
Objeto Leitor
Objeto Leitor
Objeto Leitor
Objeto Assunto
24. A dependência entre os participantes
Existem muitos observadores e eles
confiam no Assunto para contar-lhes quando ocorrer
alterações no estado
Objeto Leitor
Objeto Leitor
Objeto Leitor
Objetos observadores
Objeto NovoLeitor
Objeto Assunto
25. Fraco Acoplamento
Objetos que interagem entre si
Possuem pouco conhecimento sobre cada um
Padrão Observer
Fornece um design fracamente acoplado
Por quê?
26. Fraco Acoplamento no Observer
A única coisa que o Assunto (Subject) sabe
sobre um Observador é que ele implementa
um determinada interface
27. Fraco Acoplamento no Observer
É possível adicionar um novo observador a
qualquer momento
28. Fraco Acoplamento no Observer
Não precisamos modificar o Subject (Assunto)
para adicionar novos tipos de observadores
29. Fraco Acoplamento no Observer
Podemos reusar os objetos
Alterações feitas em cada um deles não afetarão o
outro
30. Princípio de Design
Procure desenvolver designs fracamente
acoplados entre objetos
Permite que construir sistemas OO flexíveis
Com possibilidade de sucesso nas mudanças
Porque ele minimizam a interdependência entre
objetos
35. DadosDoTempo.java
import java.util.ArrayList;
public class DadosDoTempo implements Subject {
/**
* Esta lista guarda os observadores
*/
public ArrayList<Observer> observadores;
/**
* Temperatura em graus celsius
*/
public float temperatura;
/**
* Umidade em percentuais
*/
public float umidade;
/**
* Pressao em joules
*/
public float pressao;
/**
* Construtor Inicializa a lista de observadores
*/
public DadosDoTempo() {
observadores = new ArrayList<Observer>();
}
36. DadosDoTempo.java
/**
* Registra o observador através da inclusão dele na lista
*/
public void registrarObservador(Observer o) {
observadores.add(o);
}
/**
* Quando um observador não desejar mais recever notificações, usamos este
* método para removê-lo da lista de observadores
*/
public void removerObservadores(Observer o) {
int i = observadores.indexOf(o);
if (i >= 0) {
observadores.remove(i);
}
}
/**
* Notifica os observadores que uma mudança ocorreu
*/
public void notificarObservadores() {
for (int i = 0; i < observadores.size(); i++) {
Observer observador = (Observer) observadores.get(i);
observador.atualizar(temperatura, umidade, pressao);
}
}
37. DadosDoTempo.java
/**
* Método usado quando ocorrer alterações nas medidas do tempo
*
*/
public void medicoesAlteradas() {
notificarObservadores();
}
/**
* Método que será usado pela Estacao Meteorológica para alterar
* o estado da temperatura, da umidade e da pressao
* @param temperatura Valor em graus Celsius
* @param umidade Valor em percentuais
* @param pressao Valor em joules
*/
public void setMedicoes(float temperatura, float umidade, float pressao) {
this.temperatura = temperatura;
this.humidade = umidade;
this.pressao = pressao;
medicoesAlteradas();
}
}
39. TelaCondicoesAtuais.java
/**
* Esta classe implementa o Padrão Observer, mais especificamente o participante
* Observer.
* @author eduardo
*
*/
public class TelaCondicoesAtuais implements Observer, ExibirElemento {
/**
* Temperatura em graus celsius
*/
private float temperatura;
/**
* umidade em percentuais
*/
private float umidade;
/**
* Este é objeto Subject ao qual este Observer estará dependente
*/
private Subject dadosDoTempos;
/**
* Construtor que inicializa o Subject e registra este Observador junto
* ao Subject
* @param dadosDoTempos Subject ao qual este observador está ligado
*/
public TelaCondicoesAtuais(Subject dadosDoTempos) {
this.dadosDoTempos = dadosDoTempos;
this.dadosDoTempos.registrarObservador(this);
}
40. TelaCondicoesAtuais.java
/**
* Atualiza os valores de temperatura, umidade e pressao.
* Este método é chamado no Subject (DadosDoTempo.java)
* Após a atualização de valores o método exibir() é chamado
*/
public void atualizar(float temperatura, float umidade, float pressao) {
this.temperatura = temperatura;
this.umidade = umidade;
exibir();
}
/**
* <p>Este método é chamado sempre que o Observador receber novos valores
* do Subject.</p>
*/
public void exibir() {
System.out.println("n======== TELA CONDIÇÕES ATUAIS =========");
System.out.println("Condições atuais: " + temperatura + "ºC e " + umidade
+ "% de umidade");
}
}
41. Como seria o código para
as outras Telas?
TelaPrevisao e TelaEstatisticas
42. Testando com uma mini estação
public class EstacaoMeteorologica {
public static void main(String[] args) {
DadosDoTempo dadosDoTempo = new DadosDoTempo();
TelaCondicoesAtuais telaCondicoesAtuais =
new TelaCondicoesAtuais(dadosDoTempo);
TelaEstatisticas telaEstatisticas =
new TelaEstatisticas(dadosDoTempo);
TelaPrevisao telaPrevisao =
new TelaPrevisao(dadosDoTempo);
dadosDoTempo.setMedicoes(30, 65, 30.4F);
dadosDoTempo.setMedicoes(34, 70, 29.2F);
dadosDoTempo.setMedicoes(28, 98, 29.2F);
}
}
43. Princípios de Design no Observer
Separar o que varia do que continua igual
Variação: Estado do Subject
Número de Observadores
Com o Observer você pode variar os objetos que
dependem do estado de Subject, sem ter que
mudá-lo.
44. Princípios de Design no Observer
Programar para Interface e não para
implementação
Tanto Subject como Observer usam interfaces.
O Subject contém uma lista de objetos que
implementam a interface Observer, enquanto os
os objservadores registram-se ao Subject e são
alterados por esta interface.
Design de fraco acoplamento
45. Princípios de Design no Observer
Priorizar a composição
O padrão usa a composição para compor qualquer
número de observadores com seus Subjects.
Esta relação não é configurada por nenhuma
hierarquia de herança.
Relações configuradas em tempo de execução