Exemplo n.º 1
0
        public void Physical_Visitor()
        {
            // 物件結構
            var o = new ObjectStructure();
            // 誠實人元素物件
            var honestMan = new HonestManElement();
            // 說謊人元素物件
            var lieMan = new LieManElement();

            // 將誠實人、說謊人元素物件放進物件結構
            o.Attach(honestMan);
            o.Attach(lieMan);

            // 物理問題訪問者
            PhysicsVisitor physicsVisitor = new PhysicsVisitor();

            Console.WriteLine("[物理問題]");
            o.Display(physicsVisitor); // 輸出結果
        }
Exemplo n.º 2
0
        public void Math_Visitor()
        {
            // 物件結構
            var o = new ObjectStructure();
            // 誠實人元素物件
            var honestMan = new HonestManElement();
            // 說謊人元素物件
            var lieMan = new LieManElement();

            // 將誠實人、說謊人元素物件放進物件結構
            o.Attach(honestMan);
            o.Attach(lieMan);

            // 數學問題訪問者
            MathVisitor mathVisitor = new MathVisitor();

            Console.WriteLine("[數學問題]");
            o.Display(mathVisitor); // 輸出結果
        }
Exemplo n.º 3
0
 // 訪問說謊人的多載方法
 public override void visit(LieManElement lieElement)
 {
     Console.WriteLine("{0} 說: 鐵球在水中會浮起來", lieElement.name);
 }
Exemplo n.º 4
0
 // 訪問說謊人的多載方法
 public abstract void visit(LieManElement lieElement);