Arquitetura ideal para projetos com varias API

Boa tarde todos,

Seguinte pessoal estou desenvolvendo uma aplicação que terá integração com Orkut, Facebook, alem do próprio site da aplicação.
Então:

  • Vai acontecer de eu buscar dados da FQL (Facebook Query Language).
  • Vai acontecer de eu buscar dados na minha base SQL.
  • Vai acontecer de eu buscar dados no Orkut e etc…

Minha dúvida é existe algum padrão de projeto que se encaixa nessa arquitetura?
Qual a melhor maneira de separar os pacotes?

Na minha visão usaria o padrão de projeto Dao.
Gostaria de saber a opinião de vcs e principalmente da galera que ja estão acostumada a desenvolver para esse tipo de plataforma.

Valewww !

O DAO (DataAccesObject) serve mais pra camada de persistências. Na minha opinão, seria bom vc criar suas interfaces, e depois criar um Facade juntando todas elas, e sua comunicação com orkut e face book seria feita através dessa fachada. Se por acaso vc for buscar os “mesmos” dados no orkut e facebok, poderia usar o Strategy (acho que é assim que escreve) para tornar seu código independente de onde ele vai buscar, bastando apenas implementar outra estratégia caso decida buscar dados em outras comunidades.

Talvez se vc detalhasse mais sua aplicação, os caras que manjam aki do GUJ poderiam de ajudar.

[]s

Magno abaixo tem uma implementaacao do padrao Strategy, eu criei 4 classes e 1 interface:

package com.estrategia;
/**
 * @author Sergio Vitorino
 */
public interface Estrategia {
	
	double calcula();
	
}

[code]package com.estrategia;
/**

  • @author Sergio Vitorino
    */
    public class Somar implements Estrategia{

    private double valores[];

    public Somar(double … valores) {
    this.valores = valores;
    }

    @Override
    public double calcula(){
    double resultado = 0;
    if(this.valores.length==0){
    return 0;
    }
    for(double valor : valores){
    resultado += valor;
    }
    return resultado;
    }

}[/code]

[code]package com.estrategia;
/**

  • @author Sergio Vitorino
    */
    public class Subtrai implements Estrategia{

    private double valores[];

    public Subtrai(double … valores) {
    this.valores = valores;
    }

    @Override
    public double calcula() {
    double resultado = 0;
    if(this.valores.length==0){
    return 0;
    }
    for(double valor : valores){
    resultado -= valor;
    }
    return resultado;
    }
    }[/code]

[code]package com.estrategia;
/**

  • @author Sergio Vitorino
    */
    public class Multiplicar implements Estrategia{

    private double valores[];

    public Multiplicar(double … valores) {
    this.valores = valores;
    }

    @Override
    public double calcula() {
    if(this.valores.length==0){
    return 0;
    }else if(this.valores.length==1){
    return valores[0];
    }else{
    double resultado = valores[0];
    for(int i = 1; i<=valores.length-1;i++){
    resultado *= valores[i];
    }
    return resultado;
    }
    }

}[/code]

[code]package com.execucao;

import com.estrategia.Estrategia;
import com.estrategia.Multiplicar;
import com.estrategia.Somar;
import com.estrategia.Subtrai;

/**

  • @author Sergio Vitorino
    */
    public class Efetua {
    static double soma, subtracao , multiplicacao;

    public static void main(String[] args) {
    soma = efetua(new Somar(15,154,41,87,95,64));

     subtracao = efetua(new Subtrai(45,78,4,59,3,2,14,85,9,5));
     
     multiplicacao = efetua(new Multiplicar(78,9,63,1,7));
     
     System.out.println("Resultado da soma: "+soma);
     System.out.println("Resultado da subtracao: "+subtracao);
     System.out.println("Resultado da multiplicacao: "+multiplicacao);
    

    }

    private static double efetua(Estrategia estrategia){
    return estrategia.calcula();
    }
    }[/code]

magnocosta

Só de curiosidade, como você pretende fazer busca no Orkut?

[ ]'s