Java教程

Java设计模式之简单工厂模式

本文主要是介绍Java设计模式之简单工厂模式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

简单工厂的优点:

  • 把具体产品的类型从客户端代码中解耦处理。
  • 服务器端,如果修改了具体产品的类名,客户端也不知道(将Rise的类名改为Rise2 客户端的代码不需要修改)符合"面向接口编程"的思想。

简单工厂的缺点:

  • 如果具体产品特别多,则简单工厂就会变得十分臃肿。比如有100个具体产品,则需要写100个case。
  • 最重要的是不符合ocp原则(开闭原则),客户端需要拓展具体产品时,要修改简单工厂的代码。
package com.fjh.factory.simplefactory;

interface Food{
    void eat();
}

class Hamburger implements Food{

    @Override
    public void eat() {
        System.out.println("制造汉堡");
    }
}

class Rise implements Food{

    @Override
    public void eat() {
        System.out.println("制造饭");
    }
}

class FoodFactory{
    public static Food productFood(int i){
        Food food = null;
        switch (i){
            case 1:
                food = new Hamburger();
                break;
            case 2:
                food = new Rise();
                break;
            default:
                break;
        }
        return food;
    }
}

public class SimpleFactoryTest {
    public static void main(String[] args){
        Food food = FoodFactory.productFood(2);//可以将产品与对应编号写成枚举类。
        food.eat();
    }
}

这篇关于Java设计模式之简单工厂模式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!