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();
    }
}

上一篇:编程学习笔记(第四篇)面向对象技术高级课程:绪论-软件开发方法的演化与最新趋势(4)meta、元与元模型、软件方法的未来发展


下一篇:java中的匿名内部类总结