zoukankan      html  css  js  c++  java
  • 设计模式学习笔记——访问者模式(VIsitor)

    1.特点:当Element较稳定、Visitor易增加时考虑。(朋友在精不在多)

    2.概念:表示一个作用于某对象结构中的各个元素的操作。它使你可以在不改变各个元素的类的前提下定义作用于这些元素的新操作。

    3.类图:

    4.程序实现:

    public abstract class Emploree
        {
            public string Name { get; set; }
            protected Emploree() { }
            public Emploree(string name)
            {
                Name = name;
            }
            public abstract void Accept(Visitor visitor);
        }
    
        public class Manager : Emploree
        {
            public Manager(string name)
            {
                Name = name;
            }
            public override void Accept(Visitor visitor)
            {
                visitor.Visit(this);
            }
        }
    
        public class Chairman : Emploree
        {
            public Chairman(string name)
            {
                Name = name;
            }
            public override void Accept(Visitor visitor)
            {
                visitor.Visit(this);
            }
        }
    

      

    public abstract class Visitor
        {
            public abstract void Visit(Manager manager);
            public abstract void Visit(Chairman chairman);
        }
    
        public class Salary : Visitor
        {
            public override void Visit(Manager manager)
            {
                Console.WriteLine("Manager salary is 100000");
            }
            public override void Visit(Chairman chairman)
            {
                Console.WriteLine("Chairman salary is 1000000");
            }
        }
    

      

  • 相关阅读:
    [leetcode-135-Candy]
    [leetcode-151-Reverse Words in a String]
    [leetcode-139-Word Break]
    [leetcode-129-Sum Root to Leaf Numbers]
    [leetcode-143-Reorder List]
    [leetcode-141-Linked List Cycle]
    oracle 环境变量(中文显示乱码)
    Oracle 自增长id
    Spring.net 事件的注入
    Spirng.net 替换任意方法
  • 原文地址:https://www.cnblogs.com/ice-baili/p/4710394.html
Copyright © 2011-2022 走看看