Example #1
0
 public void Accept(CharacterVisitor visitor)
 {
     foreach (var character in Characters)
     {
         Console.WriteLine(character.GetType().Name);
     }
 }
Example #2
0
        /// <summary>
        /// Demonstrates using the visitor pattern on classes that uses interfaces
        /// </summary>
        public void PerformVisitOnCharacters()
        {
            var collection = new CharacterCollection();

            var characterVisitor = new CharacterVisitor();

            characterVisitor.Visit(collection);
        }
Example #3
0
        public void ComicBookVisitorShouldVisitUniverseskWithoutException()
        {
            //Arrange
            var chVisitor = new CharacterVisitor();

            //Act
            var exception = Record.Exception(() => Client.DoVisit(_components, chVisitor));

            //Assert
            exception.ShouldBeNull();
        }
 //执行访问者
 public void RunVisitor(CharacterVisitor visitor)
 {
     soldiers.ForEach(s => s.RunVisitor(visitor));
     enemies.ForEach(e => e.RunVisitor(visitor));
 }
Example #5
0
 public void Accept(CharacterVisitor characterVisitor)
 {
     characterVisitor.VisitBoss(this);
 }
Example #6
0
 public void Accept(CharacterVisitor characterVisitor)
 {
     characterVisitor.VisitMonster(this);
 }
Example #7
0
 public abstract void RunVisitor(CharacterVisitor visitor);
    protected abstract void PlayDeathSound();//没有必要使用多态,模版方法,只需要一个参数就可以,这里是为了学习而学习

//    protected abstract void PlayDeathEffect();

    public override void RunVisitor(CharacterVisitor visitor)
    {
        visitor.VisitSoldier(this);
    }
Example #9
0
//    protected abstract void PlayDmgEffect(); //没有必要使用多态,模版方法,只需要一个参数就可以,这里是为了学习而学习

    public override void RunVisitor(CharacterVisitor visitor)
    {
        visitor.VisitEnemy(this);
    }