Exercicio basico em java netbeans

Meu professor começou a dar aula de java com diagramas e mandou que pesquisasemos o padrão facade e implementasse:

Implemente um exemplo de Façade, utilize no mínimo 3 subsistemas que :
? Convertem a temperatura de Farenheit para Celsius
? Informam se é um dia quente ou dia frio
? Dá dicas de moda, por exemplo, se o dia for quente e for quarta-feira e o usuário for mulher usar vestido amarelo.

Eu modelei mais ou menos os diagramas , mas sou zero a esquerda no netbeans…

Preciso de um exemplo de um destes três tópicos pra eu saber como ele que que o netbeans apresente esta implementação…
Não sei muito de chamar metodos e classes ainda…

To meio perdido como fazer?! :frowning:

:idea: Use if else que funciona :idea:

:thumbup:

Olá CristianoRSul!

Poste aqui o código que você tentou fazer.
Acredito que seu professor já tenha ensinado o básico (criar uma classe, método principal, etc).

Abraços!

Suelengc…fiz assim mas não sei como chamar no main…a estrutura é padrão facade.

Pensei em criar dois metodos e chamar no main…informando o tempo ex:

public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        System.out.println("O tempo...");
    
        //como chamar o temppo aqui ???
    }
}

class Tempo {

    static void Esquentar(String string) {
          System.out.println("O tempo ficou bommm..");
    }

    static void Esfriar(String string) {
        System.out.println("O tempo piorou..");
    }

}


public class TempoFacade {

    public static void TipoTempoBom(){
    
        Tempo.Esfriar("RUIM");
        Tempo.Esquentar("BOM");
    }
}

Olá CristianoRSul!

Respondendo sua pergunta (em comentário no código), para chamar o “tempo” você tem que:

Primeiro criar uma instância da classe (pois não se trata de uma classe estática):

TempoFacade tempoFacade = new TempoFacade();

Depois a partir do objeto criado, chamar o método:

tempoFacade.TipoTempoBom();

[color=red]Correção: Eu não tinha percebido (tinha tirado no meu teste rs) mas o KamikazeBr me avisou. O método TipoTempoBom é static então não precisa instanciar a classe, logo, a chamada ao método ficaria conforme abaixo:[/color]

TempoFacade.TipoTempoBom();

Detalhe: você pode usar outra IDE que não o Netbeans, tal como o Eclipse, isso vai de gosto pessoal.

Mas acho que este seu código não representa muito bem o padrão facade.

Eu fiz o abaixo, dá uma olhada (falta implementar uns pedaços) e vê se entende. Qualquer coisa pergunta aqui ok!?

public class TesteFacade { 
	public static void main(String[] args) { 
		Facade facade = new Facade();
		facade.DiaDeHoje(70);
	} 
} 

class SubSistemaTemperatura { 
	int ConverteFahenheitEmCelsius(int temperaturaEmFarenheit){
		//faz a conversão e devolve a temperatura em celsius
		int grausCelsius = 0;
		
		System.out.println("A temperatura de hoje será de " + grausCelsius + " °C.");
		
		return grausCelsius;
	}
} 

class SubSistemaClima { 
	void getClima(int temperaturaEmCelsius){
		if (temperaturaEmCelsius > 19) {
			System.out.println("O tempo hoje será quente.");
		} else {
			System.out.println("O tempo hoje será frio.");
		}
	}
} 

class SubSistemaDicasDeModa { 
	void getDicasDeModa(){
		//implementação aqui
		System.out.println("As dicas de moda de hoje são...");
	}
} 

class Facade { 

	private SubSistemaClima subSistemaClima = new SubSistemaClima();
	private SubSistemaTemperatura subSistemaTemperatura = new SubSistemaTemperatura();
	private SubSistemaDicasDeModa subSistemaDicasDeModa = new SubSistemaDicasDeModa();
	
	public void DiaDeHoje(int temperaturaEmFarenheit){
		int temperaturaEmCelsius = 0;
		//Faz conversão de °F para °C
		temperaturaEmCelsius = subSistemaTemperatura.ConverteFahenheitEmCelsius(temperaturaEmFarenheit);
		
		//Verifica o clima do dia
		subSistemaClima.getClima(temperaturaEmCelsius);
		
		//Busca dicas de moda
		subSistemaDicasDeModa.getDicasDeModa();
	} 
} 

Abraços!

creio que quando se trata de exercicios de faculdade e escolas técnicas, o ideal não seria ficar dando mastigado.

Bha…valeu…tive outra visão com a sua postagem!

Era muito alem do que eu imaginei…mas compreendi as chamadas dos metodos…algumas coisas vou dar uma pesquisada e ler mais sobre.

Muito Obrigado !!!

CristianoRSul,

Para entender melhor os padrões, primeiro entenda o que é um padrão efetivamente, para isso procure sobre Christopher Alexander (quem criou os primeiros padrões - não sobre software).

Sobre os padrões de projetos especificamente, tem o site DoFactory que tem muitos exemplos e é bem direto. Os exemplos estão em C# mas acredito que dá pra você entender. Segue o link sobre o Facade http://www.dofactory.com/Patterns/PatternFacade.aspx

JuniorMaia,

Concordo com você, e não foi essa minha intenção. Tanto que faltam algumas implementações no código. Mas talvez eu tenha mostrado um pouco mais do que devia… vou me policiar mais :wink:

Abraços!