您的位置:首页 > 其它

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

2016-05-31 19:20 239 查看
//注意 以下代码均是讲解的最终版本,详细讲解内容,请关注直播 


    //我们写代码  要满足   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访问基类的方法和属性

            //慎用继承,因为继承,虽然是面向对象的三大基石之一, 但是 滥用继承 会破坏其封装性

        }

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  设计模式