美文网首页
工厂模式

工厂模式

作者: 御都 | 来源:发表于2019-07-26 06:51 被阅读0次
    AnimalFactory的类,通过传入不同参数能够创建不同的子类对象
    class AnimalFactory{
        public static Animal getAnimal(int msg){
            Animal a1= null;
            switch(msg){
            case 1:
                a1 = new Cat();
                break;
            case 2:
                a1 = new Dog();
                break;  
            case 3:
                a1 = new Fish();
                break;
            default:
                System.out.println("无效的消息:"+msg);
            }
            return a1;
        }
    }
    ####################
    //优势是简单
            //缺点是硬编码,以后将Cat()改了,需要重新编译一次
            Animal a1 = new Cat();
            //改进获取对象的方式
            //代码只和父类Animal 工厂类相关,和具体的子类无关
            //以后更改业务甚至无需修改代码
            //使用父类和工厂类,能达到解耦合
            Animal a2 = AnimalFactory.getAnimal(1);
            Animal a3 = AnimalFactory.getAnimal(2);
            System.out.println(a2 instanceof Cat);
            System.out.println(a3 instanceof Dog);
    
    

    相关文章

      网友评论

          本文标题:工厂模式

          本文链接:https://www.haomeiwen.com/subject/btmlrctx.html