抽象工廠:簡單遊戲角色

K戰神發表於2015-12-17

1、功能

角色工廠,建立角色(醫生、獸人),每個角色有技能包(攻擊、防禦)

2、實現

抽象攻擊技能

 public abstract class AttactSkill
    {     
    }

抽象防禦技能

  public abstract class DefenseSkill
    {      
    }

具體攻擊技能:拳擊

public class Boxing : AttactSkill
    {
        public Boxing(double atk)
        {
            Console.WriteLine("攻擊力:" + atk);         
        }
    }

具體防禦技能:盾牌

public class Shield : DefenseSkill
    {
        public Shield(double def)
        {
            Console.WriteLine("防禦力:" + def);
        }       
    }

抽象角色工廠:輸出攻擊技能以及防守技能

 public abstract class RoleFactory
    {
        public abstract AttactSkill PointAttactSkill();
        public abstract DefenseSkill PointDefenseSkill();
    }

具體角色:醫生、獸人

 public class Doctor:RoleFactory
    {

        public override AttactSkill PointAttactSkill()
        {
            Console.WriteLine("我是醫生");
            return new Boxing(4.5);
        }
        public override DefenseSkill PointDefenseSkill()
        {
            return new Shield(5);
        }
    }

    public class Orc : RoleFactory
    {
        public override AttactSkill PointAttactSkill()
        {
            Console.WriteLine("我是獸人");
            return new Boxing(7.5);
        }
        public override DefenseSkill PointDefenseSkill()
        {
            return new Shield(7);
        }
    }

3、呼叫

class Program
    {
        static void Main(string[] args)
        {
            //醫生
            RoleFactory dc = new Doctor();
            dc.PointAttactSkill();
            dc.PointDefenseSkill();
            //獸人
            RoleFactory orc = new Orc();
            orc.PointAttactSkill();
            orc.PointDefenseSkill();
            Console.WriteLine();
            Console.ReadKey();
        }
    }

4、再說一點

工廠方法模式:一個抽象產品類,可以派生出多個具體產品類。 
                              一個抽象工廠類,可以派生出多個具體工廠類。 
                              每個具體工廠類只能建立一個具體產品類的例項。 
抽象工廠模式:多個抽象產品類,每個抽象產品類可以派生出多個具體產品類。 
                              一個抽象工廠類,可以派生出多個具體工廠類。 
                              每個具體工廠類可以建立多個具體產品類的例項。

 

相關文章