Collection, HubCollection uma parte do Plug ;)

Publicado: 04/02/2005 em IntoSpaces
Olá Pessoal!
Estou no final do desenvolvimento do ???Plug???, e uma das partes importantes da Orientação a Objetos do projeto são as coleções.
No caso do Plug, é uma coleção de Hubs, não vou dar muitos detalhes do projeto, quero fazer uma pequena surpresa pra vocês, mas vou mostrar aqui uma coleção.

Com coleções podemos fugir dos Arrays e ArrayLists diminuindo os overloads em nossas aplicações, enquanto os Generics não chegam é uma ótima solução, vamos ver como funciona uma coleção simples.

[Serializable]
public class HubCollection : CollectionBase
{
   public Hub this[int item]
   {get{return this.GetHub(item);}}

   public void Add(Hub hub)
   {
      List.Add(hub);
   }

   public
bool Remove(int index)
   {
      if (index > Count – 1 || index < 0)
         return false;
      else
      {
         List.RemoveAt(index);
         return true;
      }
   }

   private Hub GetHub(int Index)
   {
      return (Hub) List[Index];
   }
}

Utilizamos como base para nossa classe a CollectionBase, ela fornece métodos simples para construirmos nossos próprios métodos a partir da nossa List!
Com pouca lógica vamos adicionando e removendo ítens, não tem nem muito o que dizer, para construir uma coleção de qualquer tipo é só substituir o tipo de retorno e de  etnrada da classe e seus métodos.

Com isso trabalhamos direto com nosso tipo de dados e dispensamos o Boxing e Unboxing do ArrayList que fornece funcionalide parecida, porém ele utiliza o tipo object para ser genérico.

É isso pessoal! Espero que mais essa técnica ajude vocês nas jornadas de desenvolvimento.
Agora vou nessa e bom carnaval pra todos vocês, divirtam-se com responsabilidade!!

[]’s
Shinji

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s