quarta-feira, 25 de março de 2015

Programação em STRATEGY, junto com a UML do código fonte.

Minha primeira programação em STRATEGY,
junto com a UML do código fonte.


     Seguindo o padrão MVC Model View Control, e os exemplos do Prof. Jadison Almeida, acompanhando o vídeo dele refiz toda a programação de Arquitetura de Software Padrões de Projetos com o STRATEGY, e fiz também toda a UML com seus diagramas como vou explicar a seguir.


Usando o programa ECLIPSE como a figura 1, recriei todo o código de ação de movimentos e som de pato em cada explicação que dele recebi, com cada UML respectivo vou mostra junto com ele o código java que foi criado ao longo do desenvolvimento.

figura 1

Aqui nesta figura 2, segue um modelo criado do midmap em UML,

Figura 2

Ao criar no padrão UML da figura 3 do Diagrama de Classe Pai (PATO) e as classes filhos (BORRACHA, COMUM e MADEIRA).

Figura 3
A classe pai "Pato.java" aqui criada servira como um padrão para as outras classes que será herdada.
Pato.java 
package pato;
import compSom.CompSom;
import compVoo.CompVoo;
public class Pato {
private String nome;
private String cores;
private CompVoo voo;
private CompSom som;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCores() {
return cores;
}
public void setCores(String cores) {
this.cores = cores;
}
public CompVoo getCompVoo() {
return voo;
}
public void setCompVoo(CompVoo voo) {
this.voo = voo;
}
public CompSom getCompSom() {
return som;
}
public void setCompSom(CompSom som) {
this.som = som;
}
public void voo() {
voo.CompVoo();
}
public void som(){
som.CompSom();
} }
A classe filho "PatoBorracha.java" aqui criada herdada tudo da classe pai "Pato.java".
PatoBorracha.java 
package pato;
import compSom.SomBorracha;
import compVoo.VooSem;
public class PatoBorracha extends Pato {
public PatoBorracha(){
setCompSom(new SomBorracha());
setCompVoo(new VooSem());
}
}
A classe filho "PatoComum.java" aqui criada herdada tudo da classe pai "Pato.java".
PatoComum.java 
package pato;
import compSom.SomComum;
import compVoo.VooComum;
public class PatoComum extends Pato {
public PatoComum(){
setCompSom(new SomComum());
setCompVoo(new VooComum());
}
}
A classe filho "PatoMadeira.java" aqui criada herdada tudo da classe pai "Pato.java".
PatoMadeira.java 
package pato;
import compSom.SomMudo;
import compVoo.VooSem;
public class PatoMadeira extends Pato {
public PatoMadeira(){
setCompSom(new SomMudo());
setCompVoo(new VooSem());
        }
}

Como classe principal criada para os complementos foi o Diagrama de Classe da Interface que envia para as classes dele herdada o método chamado "CompSom" que é simplesmente a classe que tem as implementações que emitem som ou não.

Figura 4
pato.java
package pato;
import compSom.CompSom;
import compVoo.CompVoo;
public class Pato {
private String nome;
private String cores;
private CompVoo voo;
private CompSom som;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCores() {
return cores;
}
public void setCores(String cores) {
this.cores = cores;
}
public CompVoo getCompVoo() {
return voo;
}
public void setCompVoo(CompVoo voo) {
this.voo = voo;
}
public CompSom getCompSom() {
return som;
}
public void setCompSom(CompSom som) {
this.som = som;
}
public void voo() {
voo.CompVoo();
}
public void som(){
som.CompSom();
}
}
PatoBorracha.java
package pato;
import compSom.SomBorracha;
import compVoo.VooSem;
public class PatoBorracha extends Pato {
public PatoBorracha(){
setCompSom(new SomBorracha());
setCompVoo(new VooSem());
}
}
PatoComum.java 
package pato;
import compSom.SomComum;
import compVoo.VooComum;
public class PatoComum extends Pato {
public PatoComum(){
setCompSom(new SomComum());
setCompVoo(new VooComum());
}
}

PatoMadeira.java 
package pato;
import compSom.SomMudo;
import compVoo.VooSem;
public class PatoMadeira extends Pato {
public PatoMadeira(){
setCompSom(new SomMudo());
setCompVoo(new VooSem());
       }
}
Como classe principal criada para os complementos foi o Diagrama de Classe da Interface que envia para as classes dele herdada o método chamado "CompVoo" que é simplesmente a classe que tem as implementações que voa ou não.

Figura 5
compVoo.java 
package compVoo;
public interface CompVoo { public void CompVoo();
}

VooComum.java
package compVoo;
public class VooComum implements CompVoo {
@Override
public void CompVoo() {
System.out.println("Voei normalmente,  ~o~  ");
}
VooSem.java 
package compVoo;
public class VooSem implements CompVoo {
@Override
public void CompVoo() {
System.out.println("Não sei voar.  \\o/ ");
}
}


Foi criado a classe que inicia o programa, este o Diagrama de Classe main que é responsavel pela classe inicial.

Figura 6
inicio.java 
package main;
import pato.Pato;
public class inicio {
public static void main(String[] args) {
Pato PatoComum = new pato.PatoComum();
Pato PatoBorracha = new pato.PatoBorracha();
Pato PatoMadeira = new pato.PatoMadeira();
        PatoComum.som();
PatoComum.voo();
PatoBorracha.som();
PatoBorracha.voo();
}
}

[ANOTAÇÕES] Padrão MVC - "Model View Control"


Padrão MVC - "Model View Control"




     O MVC é uma forma de organizar o código. Nessa forma, você separa o M, o V e o C. Que são respectivamente Model/Modelo, View/Visualização, Control/Controlador.

View = É tudo que é design. Tudo que é a "pintura" da visualização do software. Ou seja, a interface entre o computador e o usuário. Fazem parte da View os formulários, campos, imagens, layouts etc.

Modelo = Todas as funções que a base do seu negócio tem que fazer. Por exemplo, uma sapataria tem que vender produtos, cadastrar clientes e funcionários, vender parcelado, fazer pagamento de funcionário, cadastrar promoções, imprimir relatórios... tudo que o software tem que fazer.

Controlador = É a ponte que liga o View e o Modelo, sendo o código que instancia as classes do View (Janelas, Painéis etc) e do Modelo (Entidades, CRUD etc).


link pesquisado de uma resposta do: https://www.youtube.com/watch?v=nPJjMwxErsg.