static void Main(string[] args) { ConexaoSingleton c1 = ConexaoSingleton.GetConexao(); ConexaoSingleton c2 = ConexaoSingleton.GetConexao(); if (c1.Equals(c2)) { Console.WriteLine("sim"); } // polimorfismo Crepusculo cres = new Crepusculo(); StarWars srw = new StarWars(); Cinema cin = new Cinema(); cin.EntrarNoCinema(srw); cin.EntrarNoCinema(cres); //Factory Method 1 MotoFactory fab = new MotoFactory(); MotoNinja c = (MotoNinja)fab.FabricarMotos(EMotos.NINJA); c.ExibirModelo(); //Factory Method 2 fazendo as fabricas especificas Fabrica[] fabs = new Fabrica[4]; fabs[0] = new FabricaBMW(); fabs[1] = new FabricaHonda(); fabs[2] = new FabricaNinja(); fabs[3] = new FabricaYBR(); foreach (var fabF in fabs) { IMoto moto = fabF.FabricarMotos(); Console.WriteLine("Criado {0}", moto.GetType().Name); moto.ExibirModelo(); } Pizzaiolo pizzaiolo = new Pizzaiolo(); Comida pizza = pizzaiolo.criaComida(); pizzaiolo.cozinhar(); Churrasqueiro churras = new Churrasqueiro(); Comida carne = churras.criaComida(); churras.cozinhar(); var veicu = new ConcreteVeiculoFactory().GetVeiculo("bike"); veicu.Dirigir(); veicu = new ConcreteVeiculoFactory().GetVeiculo("scooter"); veicu.Dirigir(); }
static void Main(string[] args) { #region singleton var conexao1 = Conexao.GetInstance(); var conexao2 = Conexao.GetInstance(); Console.WriteLine(conexao1.Equals(conexao2) ? "Conexões iguais" : "Conexões diferentes"); #endregion #region polimorfismo com interface var matrix = new Matrix(); var crepusculo = new Crepusculo(); var cinema = new Cinema(); cinema.EntrarNoCinema(matrix); cinema.EntrarNoCinema(crepusculo); #endregion #region Factory method #region exemplo com enum //exemplo do factory com mau uso de enum, //pois a cada moto nova será incrementado o enum, ferindo o princípio de aberto/fechado var fabricaMoto = new FabricaMoto(); var cg = fabricaMoto.FabricarMoto(EMotos.CG150); var f800 = fabricaMoto.FabricarMoto(EMotos.F800); Console.WriteLine(cg.ExibirModelo()); Console.WriteLine(f800.ExibirModelo()); #endregion #region exemplo sem uso de enum Fabrica[] fabricas = new Fabrica[4]; fabricas[0] = new FabricaCG150(); fabricas[1] = new FabricaF800(); fabricas[2] = new FabricaNinja250R(); fabricas[3] = new FabricaYBR(); foreach (var fabricador in fabricas) { var moto = fabricador.FabricarMoto(); Console.WriteLine("Criado {0}", moto.ExibirModelo()); } #endregion #endregion #region Facade var game = new SistemasFacade(); game.InicializarSubSistemas(); game.ReproduzirAudio("AC/DC-Back_in_Black.mp3"); var venda = new VendaFacade(); venda.FecharPedido(); #endregion #region Proxy IImagem imagem = new ImagemProxy("c:/teste.png"); imagem.MostrarImagem(); var Car = new ProxyCar(new Driver(26)); Car.DriveCar(); var motorista = new MotoristaProxy(18); motorista.Dirigir(); #endregion #region State try { IOrdemServicoState os = new Elaboracao(); var agendamento = os.Agendar(); var execucao = agendamento.Executar(); var finalizacao = execucao.Finalizar(); finalizacao.Finalizar(); } catch (Exception ex) { Console.WriteLine(ex.Message); } #endregion #region strategy var localizacaoEnsaioPM = new EnsaioPlanoManutencaoContext(new LocalizacaoEnsaioPlanoManutencao()).GetEnsaios(); var equipmentoEnsaioPM = new EnsaioPlanoManutencaoContext(new EquipamentoEnsaioPlanoManutencao()).GetEnsaios(); var familiaEnsaioPM = new EnsaioPlanoManutencaoContext(new FamiliaEnsaioPlanoManutencao()).GetEnsaios(); new GeradorBoletoContext(new GeradorBoletoBB()).Gerar(); new GeradorBoletoContext(new GeradorBoletoBradesco()).Gerar(); new GeradorBoletoContext(new GeradorBoletoItau()).Gerar(); new GeradorBoletoContext(new GeradorBoletoCaixa()).Gerar(); #endregion }