Gerar PDF no Ubuntu 9.10

novembro 22, 2009Alberto No Comments »

Para gerar um PDF de uma página no Firefox por exemplo, no Ubuntu 9.10 é muito fácil.

Instale o seguinte pacote:

alberto@zx350:/#sudo aptitude install cups-pdf

Após a instalação na opção Sistema/Administração/Impressão , vai existir uma impressora chamada PDF.

Agora você pode abrir uma página web e mandar imprimir um PDF da seguinte maneira Arquivo/Imprimir , selecione a impressora PDF e imprimir, em seguida o arquivo será salvo na pasta /home/usuario/PDF .


Padrões de Projeto(Design Patterns)

dezembro 30, 2008Alberto 1 Comment »

Padrões de Projeto são estruturas propostas para soluções de arquitetura de determinados problemas, de tal forma que você possa utilizar essa solução em vários outros projetos sem ter que refazê-lo. A seguir veremos os principais padrões de projeto.

Padrões de Criação

Os Padrões de Criação têm a finalidade de abstrair o processo de instanciação de objetos, tornando possível assim que um sistema fique independente de como suas partes são criadas, compostas e representadas. Isso significa dizer que estes padrões contribuem para que o software seja mais dependente da composição de suas partes-objetos do que da herança entre os mesmos.

Fazem parte desse padrão:

Padrão

Finalidade

Abstract Factory

Fornecer um interface para criar famílias de objetos que se relacionem ou que sejam dependentes sem especificar a classe concreta dos mesmos.

Builder

Facilitar a criação de um objeto complexo de modo que este processo possa criar diferentes representações do objeto.

Factory Method

Fornecer uma interface para criar um objeto, mas deixar que as subclasses decidam que classe instanciar

Prototype

Especificar os tipos de objetos a serem criados via uma instância protótipo para que depois novos objetos sejam copiados a partir dele.

Singleton

Garantir que um objeto tenha uma única instância fornecendo um acesso global a esta instância.

Padrões Estruturais

Objetos são obtidos de classes, que podem ser numericamente significativas e apresentar considerável complexidade de relacionamento entre elas. Padrões Estruturais apresentam organizações elegantes onde classes são combinadas para formar estruturas maiores. A idéia é oferecer combinações gerenciáveis de classes.

Fazem parte desse padrão:

Padrão

Finalidade

Adapter

Converte a interface de uma classe em outra interface, esperada pelos clientes.

Bridge

Separar uma abstração da sua implementação, de modo que as duas possam trabalhar independentes.

Composite

Compor objetos em estruturas de árvore para separar a hierarquias todo-parte.

Decorator

Fornecer de forma dinâmica responsabilidades adicionais a objetos.

Facade

Fornecer uma interface unificada para um conjunto de interfaces em um subsistema.

Flyweight

Usar compartilhamento para suportar eficientemente grandes quantidades de objetos de granularidade fina de maneira eficiente.

Proxy

Fornece um substituto ou marcador de localização de outro objeto para controlar o acesso ao mesmo.

Padrões Comportamentais

Padrões que se encaixam nessa categoria se preocupam basicamente com algoritmos e a atribuição de responsabilidade entre objetos, esse padrão não especifica apenas padrões de objetos e classes, mas também padrões de comunicação entre estes.

Fazem parte desse padrão:

Padrão

Finalidade

Chain Of Responsibility

Evita o acoplamento do remetente de uma solicitação ao seu destinatário, dando mais de um objeto a chance de tratar a situação.

Command

Encapsula uma solicitação como um objeto, de forma que permita a parametrização com os clientes com diferentes solicitações, enfileire ou registre (log) solicitações dando suporte assim a operações que podem ser desfeitas.

Interpreter

Dada uma linguagem, define uma representação para sua gramática juntamente com um interpretador que usa a representação para interpretar as sentenças nesta linguagem.

Iterator

Fornece uma maneira de acessar seqüencialmente os elementos de um objeto agregado sem expor sua representação subjacente.

Mediator

Define um projeto que encapsula como um conjunto de objetos interage.

Memento

Sem violar a encapsulação, captura a externaliza um estado interno de um objeto, de modo que ele possa posteriormente ser restaurado para este estado.

Observer

Define uma dependência um para muitos entre objetos, de modo que quando um objeto muda de estado, todos os seus dependentes são automaticamente notificados e atualizados.

State

Permite que um objeto altere seu comportamento quando seu estado interno muda.

Strategy

Define uma família de algoritmos, encapsulando cada um deles para torná-los intercambiáveis.

Template Method

Define o esqueleto de um algoritmo em uma operação postergando a definição de alguns passos para subclasses.

Visitor

Representa uma operação a ser executada sobre os elementos da estrutura de um objeto, permitindo que seja possível definir uma nova operação sem mudar as classes dos elementos sobre os quais opera.

Conclusão

Padrões de Projeto para serem empregados é necessário a existência de um problema, o projetista deve ter a habilidade para, dado determinado contexto, identificar a viabilidade ou não do emprego de um padrão, sendo que padrão não é, portanto, um remédio para todos os males, mas apenas um em particular.

Referências

  • PHP Profissional

    Melo, Alexandre Altair de

    Nascimento, Mauricio G. F.

    Ed. Novatec

  • Padrões de Projeto – Introdução aos Padrões da “Gangue dos Quatro”

    Lucena, Fábio Nogueira de