关闭

设计模式连载:第一篇转职系统模式

标签: 设计模式
141人阅读 评论(0) 收藏 举报
//注意 以下代码均是讲解的最终版本,详细讲解内容,请关注直播 


    //我们写代码  要满足   1.低耦合 2.稳定性 3.可重用  4.可拓展 

    //  我们用一个案例来讲述一下 什么是简单工厂模式
    //  游戏中的转职系统----------------主要学习的是 简单工厂模式的 思想(Thinking)
    //  现在我们需要 1 新手类 2 战士类 3 法师类 4 弓箭手类 
    ///             5 转职系统(设计模式的工厂) 6.测试类
    //新手类
    public class jackaroo
    {
        public virtual void show_job_name(){ }
    }
    //战士类
    public class warrior:jackaroo
    { 
        public override void show_job_name()
        {
            Console.WriteLine("转职成功,成为战士");
        }
    }
    //法师类             //LOOK ----》通过转职系统这个案例,我们学习的是 简单工厂模式的 思想(Thinking),而不是代码
    public class rabbi : jackaroo
    {
        public override void show_job_name()
        { 
            Console.WriteLine("转职成功,成为法师");
        }
    }
    //弓箭手类            //LOOK ----》通过转职系统这个案例,我们学习的是 简单工厂模式的 思想(Thinking),而不是代码
    public class bowman : jackaroo
    {
        public override void show_job_name()
        {
            Console.WriteLine("转职成功,成为弓箭手");
        }
    }
    //简单工厂模式的  工厂类方法,根据转职成什么职业,来实例化谁的对象
    public class job_factory{
        jackaroo jc;
       //工厂方法;
        public jackaroo job_change_factory_function(string s){
            switch (s) {
                case "战士":
                    jc = new warrior(); break;
                case "法师":
                    jc = new rabbi(); break;
                case "弓箭手":
                    jc = new bowman(); break;
            }
            return jc;
        }
    }
 //简单工厂模式思想  工厂,这里是转职系统类,抽象产品,这里是新手类,具体产品,这里是战法弓三种职业类,学习的是Thinking噢~~!!!
 //测试类
    class Program {
        static void Main(string[] args){
            //测试一下 我们的 简单工厂模式,是否写好了
            //工厂类的变量
            job_factory job_factory_g = new job_factory();
            jackaroo jc=job_factory_g.job_change_factory_function("法师");
            jc.show_job_name();
            //每种设计模式,都有利弊,各位权衡其中,然后决定什么时候用什么模式
  


            //简单工厂模式 设计到的 知识点  1 继承,先讲解一下继承
            //面向对象  要知道 三个特性  1. 封装 2  继承 3  多态
            // 什么是继承
            //比如我们有 两个类, 一个类叫father(作为基类) 另一个类叫 son(子类)
            // 子类继承基类后, 子类拥有基类的属性和方法,子类还可以拥有自己的新属性和方法
            //基类用virtual写的方法,子类可以用override重写
           //使用base访问基类的方法和属性
            //慎用继承,因为继承,虽然是面向对象的三大基石之一, 但是 滥用继承 会破坏其封装性
        }
    }
}
1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1950次
    • 积分:118
    • 等级:
    • 排名:千里之外
    • 原创:9篇
    • 转载:0篇
    • 译文:2篇
    • 评论:0条