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()); }
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()); }
static void Main(string[] args) { //何时使用:需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而需要避免让这些操作"污染"这些对象的类,使用访问者模式将这些封装到类中 IComputerPart computer = new Computer(); ComputerPartDisplayVisitor visitor = new ComputerPartDisplayVisitor(); computer.accept(visitor); Console.Read(); }