黑马程序员技术交流社区

标题: 求个简单工厂的实例 [打印本页]

作者: 逆天火焰猫    时间: 2014-4-1 15:54
标题: 求个简单工厂的实例
本帖最后由 逆天火焰猫 于 2014-4-12 10:33 编辑

最好来点注释啥的 刚看过视频有点迷糊
作者: cmcm2014    时间: 2014-4-1 16:12
public class Ball
    {  
        public string Play(string ballType)  
        {  
            return “Play+"ballType"”;
        }  
    }  
  
    public class FootBall: Ball
    {  
        public override string  Play(string ballType)  
        {  
                return “Play+ballType”;
        }  
    }  
  
   public class BasketBall: Ball
    {  
        public override string  Play(string ballType)  
        {  
                return “Play+ballType”;
        }  
    }  
    创建简单工厂public static Bal CreatObject(string operate)  
        {  
            Operation oper = null;  
            switch (operate)  
            {  
                case "FootBall":  
                    oper = new FootBall();  
                    break;  
                case "BasketBall":  
                    oper = new OperationSub();  
                    break;  
                case "*":  
                    oper = new BasketBall();  
                    break;   
                default:  
                    break;  
            }  
            return oper;  
        }
调用工厂:

Ball b=CreatObject.Play("FootBall");

工厂模式其实就是不需要你做实例化类的操作,已经有了一个实例化类的处理。
本例中有一个Ball的类,一个抽象方法Play,然后2个子类,足球,篮球。Play()不知道玩的是什么球类,但是你传入FootBall时,因为有了CreatObject这个方法,他自己去匹配需要实例化的对象是谁,所以Ball a=CreatObject.Play("FootBall")就实现了。
作者: 茹化肖    时间: 2014-4-3 22:46
http://www.cnblogs.com/ruhuaxiao/p/3610437.html  我在博客园写的 你可以参考下.不想复制黏贴给你
作者: SunshineGirl    时间: 2014-4-7 09:02
要及时的设置成提问结束,这样版主才会给你加分的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2