コード例 #1
0
        public void VisitKeyboardTest()
        {
            Mock <IDisplay>            mockDisplay = new Mock <IDisplay>();
            ComputerPartDisplayVisitor computerPartDisplayVisitor = new ComputerPartDisplayVisitor(mockDisplay.Object);
            Keyboard keyboard = new Keyboard();

            computerPartDisplayVisitor.Visit(keyboard);
            mockDisplay.Verify(x => x.WriteLine("Displaying keyboard"), Times.Once());
        }
コード例 #2
0
        public void VisitMonitorTest()
        {
            Mock <IDisplay>            mockDisplay = new Mock <IDisplay>();
            ComputerPartDisplayVisitor computerPartDisplayVisitor = new ComputerPartDisplayVisitor(mockDisplay.Object);
            Monitor monitor = new Monitor();

            computerPartDisplayVisitor.Visit(monitor);
            mockDisplay.Verify(x => x.WriteLine("Displaying monitor"), Times.Once());
        }
コード例 #3
0
        static void Main(string[] args)
        {
            //何时使用:需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而需要避免让这些操作"污染"这些对象的类,使用访问者模式将这些封装到类中

            IComputerPart computer             = new Computer();
            ComputerPartDisplayVisitor visitor = new ComputerPartDisplayVisitor();

            computer.accept(visitor);

            Console.Read();
        }