A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 逆天火焰猫 中级黑马   /  2014-4-1 15:54  /  1052 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 逆天火焰猫 于 2014-4-12 10:33 编辑

最好来点注释啥的 刚看过视频有点迷糊

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

3 个回复

倒序浏览
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")就实现了。

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
http://www.cnblogs.com/ruhuaxiao/p/3610437.html  我在博客园写的 你可以参考下.不想复制黏贴给你
回复 使用道具 举报
要及时的设置成提问结束,这样版主才会给你加分的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马