Java设计模式之工厂模式

工厂模式优点:

  • 仍然具有简单工厂的优势,服务端与客户端解耦。
  • 当客户端需要扩展一个新的产品时,不需要修改原先的代码,只是扩展一个新的工厂,符合ocp原则。

工厂模式缺点:

  • 如果有多个产品等级,那么工厂类的数量就会爆炸式增长。
package com.fjh.factory.simplefactory.factory;

interface Food{
    void eat();
}

class Hamburger implements Food {

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

interface FoodFactory{
    Food getFood();
}

class HamburgerFactory implements FoodFactory{

    @Override
    public Food getFood() {
        return new Hamburger();
    }
}

class Rise implements Food {

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

class RiseFactory implements FoodFactory{

    @Override
    public Food getFood() {
        return new Rise();
    }
}

class Bussiness{

    public static void taste(FoodFactory foodFactory){
        Food food = foodFactory.getFood();
        System.out.println("小甲");
        food.eat();
        Food food2 = foodFactory.getFood();
        System.out.println("小乙");
        food2.eat();
        Food food3 = foodFactory.getFood();
        System.out.println("小丙");
        food3.eat();
    }
}

public class FactoryTest {
    public static void main(String[] args){
        FoodFactory ff = new HamburgerFactory();//工厂名趋向于稳定。
        Food food = ff.getFood();
        food.eat();

        FoodFactory ff2 = new RiseFactory();
        Food food2 = ff2.getFood();
        food2.eat();

        Bussiness.taste(ff);
    }
}

posted @ 2021-08-12 16:41  fjhnb  阅读(170)  评论(0)    收藏  举报