示例#1
0
        public static void Main(string[] args)
        {
            // (1+2) + (20-10)
            var esquerda = new Soma(new Numero(1), new Numero(2));
            var direita  = new Subtracao(new Numero(20), new Numero(10));
            var soma     = new Soma(direita, esquerda);

            var impressora = new ImpressoraVisitor();

            soma.Imprimir(impressora); // visitor age aqui

            Console.WriteLine(" = " + soma.Avaliar());
            Console.ReadKey();
        }
示例#2
0
        public static void Main(string[] args)
        {
            IExpressao expressao = new Soma(new Numero(110), new Subtracao(new Numero(20), new Numero(8)));

            Console.WriteLine(expressao.Avalia());

            IVisitor visitor = new ImpressoraVisitor();

            expressao.Aceita(visitor);

            Console.WriteLine("");
            visitor = new PreFixaVisitor();
            expressao.Aceita(visitor);

            Console.ReadKey();
        }
示例#3
0
        static void Main(string[] args)
        {
            Console.WriteLine("Visitor");
            // (1+10) + (20-10)

            IExpressao esquerda  = new Soma(new Numero(1), new Numero(10));
            IExpressao direita   = new Subtracao(new Numero(20), new Numero(10));
            IExpressao soma      = new Soma(esquerda, direita);
            int        resultado = soma.Avalia();

            Console.WriteLine(resultado);

            ImpressoraVisitor impressora = new ImpressoraVisitor();

            soma.Aceita(impressora);
        }
示例#4
0
 public void Imprimir(ImpressoraVisitor impressora)
 {
     impressora.ImprimiSoma(this);
 }
示例#5
0
 public void Imprimir(ImpressoraVisitor impressora)
 {
     impressora.ImprimiNumero(this);
 }
示例#6
0
 public void Imprimir(ImpressoraVisitor impressora)
 {
     impressora.ImprimiSubtracao(this);
 }