美文网首页
简单工厂模式

简单工厂模式

作者: junjun2018 | 来源:发表于2018-07-23 17:35 被阅读0次
    简单工厂
    //公共接口
    public interface IFood {
        public void eat();
    }
    //实现类A
    public class Chips implements IFood {
        @Override
        public void eat() {
            System.out.println("吃薯条啦");
        }
    }
    //实现类B
    public class Roast implements IFood {
        @Override
        public void eat() {
            System.out.println("吃烤肉呀");
        }
    }
    //关键工厂类
    public class KFC {
        public IFood getFood(String name) {
            switch (name) {
                case "chips": {
                    return new Chips();
                }
                case "roast": {
                    return new Roast();
    
                }
                default: {
                    System.out.println("抱歉,没有!");
                    return null;
                }
    
            }
        }
    }
    
    //测试类
    public class SimpleFactoryTest {
        public static void main(String[] args) {
            KFC kfc = new KFC();
            kfc.getFood("chips").eat();
            kfc.getFood("roast").eat();
        }
    }
    //结果:
    吃薯条啦
    吃烤肉呀
    
    

    优点:将创建对象的工作分离出来,客户端只需要给定部分信息,即可得到对象实例,而不用去了解此对象是经过了哪些处理创建的,实现了结构分离
    缺点:一个工厂类融合了各种对象的创建,违背了职责单一原则。当添加新功能时,需要修改工厂类的代码,违背了开闭原则,系统失去灵活性和可维护性。

    相关文章

      网友评论

          本文标题:简单工厂模式

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