Mostrando postagens com marcador interfaces. Mostrar todas as postagens
Mostrando postagens com marcador interfaces. Mostrar todas as postagens

domingo, 24 de julho de 2011

Propondo Interfaces

Gustavo Crivelli
(17/07/2011)

Boa tarde!

Hoje gostaria de compartilhar com vocês os protótipos de interface que desenvolvi no bimestre passado. Depois de analisar diversos sites já existentes, e levando em consideração os seus pontos bons e ruins, eis o que desenvolvi:



Vocês podem notar uma certa semelhança do segundo design com a interface já postada pelo Henrique algum tempo atrás: este é o design escolhido como base para o site da nossa empresa. Já é possível vizualisá-lo aqui.

Isto dito, vamos para a programação!

Agora que todos já sabem o que são e pra que servem as propriedades de acesso básicas do PHP, está na hora de partir para algo ligeiramente mais avançado. Quebrando um pouco a promessa do meu último post, vou explicar aqui o funcionamento das propriedades interface e abstract. Static e final ficam para próxima.

Abstract: Este modificador pode ser utilizado em classes ou métodos, com algumas diferenças. Usando-o em um método, indicamos que este não será desenvolvido na classe em que foi criado; poderemos apenas declarar o seu cabeçalho, e nada mais, pois o resto terá de ser implementado em uma classe herdeira. Um exemplo para ajudar a visualização: em uma classe Animal, temos o método abstract function falar(); Esta classe é então herdada pelas classes Cachorro, Gato e Girafa. Cada uma dessas classes poderá (e precisará) desenvolver dentro de si mesma o método falar. Assim, com o mesmo comando, conseguiremos fazer o cachorro latir, o gato miar e a girafa... fazer seja lá qual for o som que uma girafa faz.

Quando usamos o abstract na declaração de uma classe, o resultado é que não podemos fazer uma instância direta da classe. Ainda podemos declarar métodos, abstratos ou não, e ainda podemos declarar variáveis (na verdade só variáveis do tipo constante), mas tudo isso só verá a luz do dia quando for herdado por outra classe. No exemplo acima, a classe Animal, independentemente dos métodos que contém, deveria ser abstrata: afinal, não é possível criar um "animal" sem que este seja de alguma espécie.

Interface: uma interface é basicamente uma classe que pode conter apenas constantes e cabeçalhos de funções, e nada mais. Desta maneira, uma classe que implemente uma interface terá que desenvolver todos os métodos nela declarados. Pode não parecer muito útil, mas imagine que seja preciso padronizar as chamadas dos métodos de diversas classes distintas, como ocorreu no exemplo acima. Como na classe Animal há apenas métodos abstratos e variáveis constantes, e a própria classe já é abstrata e não pode ser instanciada, podemos muito bem retirar os abstracts e transformá-la de uma vez em uma interface.

Para aqueles que realmente leram esta verdadeira parede de texto, espero que tenham compreendido o que são os atributos abstract e interface e entendido as suas semelhanças e diferenças. Se tudo der certo, na semana que vem terminarei este guia falando sobre as propriedades Final e Static. Não percam!


Gustavo Crivelli
(24/07/2011)

domingo, 10 de julho de 2011

Interpretando Interfaces, parte I



Bom dia!

Como você, fiel seguidor no nosso blog, já deve ter notado, o fato de estarmos em férias atrasou consideravelmente a nossa frequência de atualizações. Nossos posts têm ficado um pouquinho mais enrolados a cada dia, visto que não temos mais tanto assunto assim para falar.


Mas não tão enrolados quanto ESTE poste.


O que eu posso dizer é que estou aguardando os resultados da segunda fase do vestibular da Unesp, que saem somente no dia 20. Fora isso, acho que vale a pena mencionar que tenho estudado bastante Java nesses dias que se passaram. Aqui estão dois protótipos nos quais venho trabalhando: o primeiro, velho conhecido de qualquer um que já se aventurou na pasta Jogos do Windows, é o Campo Minado. O segundo, que pretendo aprimorar um pouco mais no decorrer das férias, é o Tetris. Estou construindo também um terceiro projeto, mas este fica para a próxima vez...

Algo que preciso falar é que estudamos alguns sites semelhantes ao que pretendemos construir. Vou expor hoje e no meu próximo post as conclusões a que cheguei.

O primeiro site analisado foi o www.xcambo.com.br.


Pontos positivos:
  • Cores claras, não ficam cansativas;
  • Divisão dos produtos em categorias intuitivas;
  • Grande quantidade de atributos para auxiliar nas pesquisas;
Pontos negativos:
  • Nome de usuário não aparece no cabeçalho (obviamente falha na programação);
  • Os “Top Xcambistas do Mês” estão muito próximos: o nome de alguns usuários na verdade consiste de duas linhas, o que é impossível de se ver até que se passe o mouse por cima deles.

Continua no próximo post...

Gustavo Crivelli
(10/07/2011)