Skip to content

Instantly share code, notes, and snippets.

View CarlosHenriqueDv's full-sized avatar

Carlos Henrique A. Mendonça CarlosHenriqueDv

View GitHub Profile
public class App {
private Painel painel;
private Botao botao;
public App(GuiFactory guiFactory) {
this.painel = guiFactory.criaPainel();
this.botao = guiFactory.criaBotao();
}
public class GuiMain {
public static void main(String[] args) {
GuiFactory factory = new WindowsGuiFactory();
App windowsApp = new App(factory);
windowsApp.configuracaoGuiApplication();;
System.out.println( );
@CarlosHenriqueDv
CarlosHenriqueDv / WindowsGuiFactory.java
Created February 9, 2023 00:11
fábrica concreta windows
public class WindowsGuiFactory implements GuiFactory {
@Override
public Painel criaPainel() {
return new PainelWindows(true);
}
@Override
public Botao criaBotao() {
return new BotaoWindows();
}
@CarlosHenriqueDv
CarlosHenriqueDv / LinuxGuiFactory.java
Created February 9, 2023 00:09
fabrica de produtos concretos linux
public class LinuxGuiFactory implements GuiFactory {
@Override
public Painel criaPainel() {
return new LinuxPainel(true);
}
@Override
public Botao criaBotao() {
return new BotaoLinux();
}
@CarlosHenriqueDv
CarlosHenriqueDv / GuiFactory.java
Created February 9, 2023 00:05
fábrica abstrata
public interface GuiFactory {
Painel criaPainel();
Botao criaBotao();
}
@CarlosHenriqueDv
CarlosHenriqueDv / BotaoWindows.java
Created February 9, 2023 00:03
Produto concreto de botão windows
public class BotaoWindows implements Botao {
private final String tipoBotao = "Windows";
@Override
public void click() {
System.out.println("Click " + tipoBotao);
}
@Override
@CarlosHenriqueDv
CarlosHenriqueDv / BotaoLinux.java
Created February 9, 2023 00:02
Produto concreto
public class BotaoLinux implements Botao {
private static final String tipoBotao = "Linux";
@Override
public void click() {
System.out.println("Click " + tipoBotao);
}
@Override
@CarlosHenriqueDv
CarlosHenriqueDv / Painel.java
Created February 8, 2023 23:55
Produto abstrato de painel
public interface Painel {
boolean isVisivel();
String tipoPainel();
}
@CarlosHenriqueDv
CarlosHenriqueDv / Personagem.java
Created January 26, 2023 01:00
Classe Personagem
Public class Personagem{
private String nome;
private String classe;
//atributos fisicos
private int constituicao;
private int forca;
private int destreza;
private int agilidade;