Escolar Documentos
Profissional Documentos
Cultura Documentos
}
}
Vejamos alguns exemplos com hierarquia de namespaces em aplicaes WEB:
System.Web
System.Web.SessionState
System.Web.Services
System.Web.UI
System.Web.UI.WebControls
System.Web.UI.HTMLConstrols
System.Web.Caching
System.Web.Mail
System.Web.Security
Todos possuem classes com finalidades especficas. Por exemplo, a System.WebServices
possui classes para criao e utililizao de Web services.
No C#, todos os cdigos esto contidos em classes, se voc quer criar mtodos ou
propriedades que possam ser chamados sem primeiro criar o objeto, declare-os como static
(estticos).
Veja os principais conceitos de OO: Definition (Definio):
Define classes usando o nome
class. Todo o cdigo executvel parte de uma classe.
Access (Acesso):
Existem 5 nveis de acesso a classes e seus membros: public, protected,
internal, protected internal e private.
Inheritance (Herana):
Classes que herdam membros de classes base e override
(sobrescrevem) ou overload (sobrecarregam) membros da classe herdada.
Constructors e Destructors (construtores e destrutores):
Classes possuem constructors e
destructors que so chamados quando um objeto de uma classe criado ou destrudo.
Mtodos construtores possuem o mesmo nome de sua classe e os destrutores so precedidos
por um ~
Abstract classes e Interfaces (Classes abstratas e Interfaces):
Voc pode definir interfaces e
classes abstratas, mtodos e propriedades. Interfaces define os membros e parmetros para
classes que usam a interface. Membros abstratos disponibilizam os itens a serem herdados por
classes derivadas deles.
Nveis de acesso a classes: public:
Todos os membros em todas as classes e projetos.
internal:Todos os membros do atual projeto.
protected:
Todos os membros da classe atual e classes derivadas. Pode ser usado apenas
nas definies dos membros, no para definio de classes.
protected internal:
Todos os membros da classe atual e classes derivadas no projeto atual.
Pode ser usada apenas em definies de membros, no para definio de classes.
private: Disponvel apenas na classe atual.
Pois bem, o foco principal deste material a utilizao de padres de projeto com C#.
Mas como foi dito, existem alguns pr-requisitos para melhor ser a absoro do contedo deste
material.
extremamente necessrio que voc aprofunde seus conhecimentos sobre OOP, o que
descrevi acima, costumo dizer que somente para estigar o leitor e insentiv-lo. Da mesma
maneira com UML. Mas estarei assim mesmo fazendo uma breve descrio sobre cada um dos
diagramas mais utilizados.
OOP est alm do escopo deste material, aconselho um bom estudo sobre o assunto. Porm,
estarei falando um pouco mais. Acredito que seja bastante til e que desta maneira, funcione
como mais um incentivo.
Diagramas UML
Para ilustrar os padres, estaremos utilizando UML. Os diagramas UML foram desenvolvidos
por Grady Booch, James Rumbaugh e Ivar Jacabson.
A UML pode ser utilizada para: Mostrar as fronteiras de um sistema e suas principais funes
utilizando atores e casos de uso.; Ilustrar a realizao de casos de uso com diagramas
de interao; Representar uma estrutura esttica de um sistema utilizando diagramas de
classe, como pode ser observado em um exemplo bem simples anteriormente. Modelar o
comportamento de objetos com diagramas de transio de estado; Revelar a arquitetura
fsica de implementao com diagramas de componente e de implantao; Estender sua
funcionalidade atravs de esteretipos. A UML uma linguagem padro para especificar,
visualizar, documentar, construir artefatos de um sistema e pode ser utilizada com todos
os processos ao longo do ciclo de desenvolvimento e atravs de diferentes tecnologias de
implementao.
Obs.: A UML uma linguagem de modelagem, no uma metodologia.
O modo para descrever os vrios aspectos de modelagem pela UML atravs da notao
definida pelos seus vrios tipos de diagramas. Um diagrama uma apresentao grfica de
uma coleo de elementos de modelo.
Modelar um sistema complexo uma tarefa extensiva sendo necessria a descrio de vrios
aspectos diferentes incluindo o funcional, no funcional e organizacional. Cada viso descrita
em um nmero de diagramas que contm informao enfatizando um aspecto particular do
sistema.
Vejamos os principais diagramas: Diagrama de classe Diagrama de caso de uso Diagramas de
interao Diagrama de sequncia Diagrama de colaborao Diagrama de estado Diagrama de
atividade Diagrama de implementao Diagrama de componente Diagrama de implantao
Vejamos agora alguns exemplos:
Diagrama de classe
Diagrama de caso de uso
Diagrama de sequncia
Diagrama de atividades
Diagrama de estados
Basicamente, utilizando como exemplo um diagrama de classes, o diagrama UML consiste de
caixas que representam as classes.
Considerando uma classe
Veja cdigo:
public class Monstro
{
private string nome;
private int idade;
public Monstro(string nm, int ida)
{
nome = nm;
idade = ida;
}
public string TipoMonstro()
{
return "domado";
}
public int getIdade()
{
return idade;
}
public void separaMonstros() { }
}
Representao da classe em UML:
Exemplo de Herana
Veja cdigo:
public class Monstro
{
private string nome;
private int idade;
public Monstro(string nm, int ida)
{
nome = nm;
idade = ida;
}
public string TipoMonstro()
{
return "domado";
}
public int getIdade()
{
return idade;
}
public void separaMonstros() { }
public abstract string getHabitat(); //para Override
}
Agora, derivamos a classe BichoPapao desta e preenchemos algum cdigo para o mtodo
getHabitat.
public class BichoPapao : Monstro
{
public BichoPapao(string nm, int ida):base(nm, ida) {}
public override string getHabitat()
{
return "Assustador de crianas";
}
}
Representao em UML:
A UML est alm do escopo deste material, aconselho um bom estudo sobre o assunto.
Porm, estarei sempre utilizando-a para podermos visualizar os padres. Acredito que seja
bastante til e que desta maneira, funcione como mais um incentivo.
bastante til e que desta maneira, funcione como mais um incentivo.
A parte I do material termina por aqui, em breve estarei disponibilizando a parte II. Divirta-se!
Para saber mais sobre o autor ou ver outros artigos, visite o DNAUG:
http://www.dnaug.com
Tire a sua dvida na lista de discusso do DNAUG:
http://groups.yahoo.com/group/dnaug/
Fonte:
- MSDN Library
- Padres de Projeto - Solues Reutilizveis de software Orientado a Objetos
- Utilizando UML e Padres
- Design Patterns - Elements of Reusable Software
- Introduction to Design Patterns in C#