Um pattern em C# por dia - Façade - pattern estrutural - mais um exemplo

Agnaldo dá mais exemplos de uso do pattern estrutural Façade

originalmente publicado em http://50minutos.com.br/blog

No post Um pattern em C# por dia: Façade - pattern estrutural eu mostrei um exemplo. Aqui vai mais um:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using _50minutos_biblioteca; using System.Threading; namespace _50minutos_facade { class Program { static void Main(string[] args) { Sala s = new Sala(); s.Abrir(); Console.WriteLine("------------------------"); Console.WriteLine("a aula está em andamento"); Console.WriteLine(" a g u a r d e . . ."); Console.WriteLine("------------------------"); Thread.Sleep(5000); s.Fechar(); Console.ReadKey(); } } } //Library namespace _50minutos_biblioteca { //SubsystemA internal class SalaTreinamento { internal void AcenderLuzes() { Console.WriteLine("sala de treinamento - luzes acesas"); } internal void ApagarLuzes() { Console.WriteLine("sala de treinamento - luzes apagadas"); } internal void Abrir() { Console.WriteLine("sala de treinamento aberta"); } internal void Fechar() { Console.WriteLine("sala de treinamento fechada"); } } //SubsystemB internal class Projetor { internal void Ligar() { Console.WriteLine("projetor ligado"); } internal void Desligar() { Console.WriteLine("projetor desligado"); } } //SubsystemC internal class Computador { internal void Ligar() { Console.WriteLine("computador ligado"); } internal void Desligar() { Console.WriteLine("computador desligado"); } } //Facade public class Sala { //SubsystemA SalaTreinamento s = new SalaTreinamento(); //SubsystemB Projetor p = new Projetor(); //SubsystemC Computador[] ac = new Computador[10]; public Sala() { for (int i = 0; i < ac.Length; i++) { ac[i] = new Computador(); } } //Operation1 public void Abrir() { s.Abrir(); s.AcenderLuzes(); p.Ligar(); foreach (var item in ac) { item.Ligar(); } } //Operation2 public void Fechar() { foreach (var item in ac) { item.Desligar(); } p.Desligar(); s.ApagarLuzes(); s.Fechar(); } } }
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados