1 Star 0 Fork 2

Emotion404 / JavaBooks

forked from 帝八哥 / JavaBooks 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
工厂模式.md 1.67 KB
一键复制 编辑 原始数据 按行查看 历史
DreamCats 提交于 2020-05-13 11:11 . 工厂模式

工厂模式

大概意思就不要说了,直接举个例子,看例子讲解就知道是什么意思了。

举例子

定义一个面条抽象类

abstract class INoodles {
    /**
     * 描述每种面条长什么样的...
     */
    public abstract void desc();
}

定义一份兰州拉面(具体产品)

class LzNoodles extends INoodles {

    @Override
    public void desc() {
        System.out.println("兰州拉面,成都的好贵 家里的才5-6块钱一碗");
    }
}

定义一份泡面(程序员挺喜欢的)

class PaoNoodles extends INoodles {

    @Override
    public void desc() {
        System.out.println("泡面可还行...");
    }
}

不得不说家乡的杂酱面了,好吃得不得了

class ZaNoodles extends INoodles {

    @Override
    public void desc() {
        System.out.println("杂酱面,嗯? 真香...");
    }
}

重头戏,开面条馆了。(工厂)

class SimpleNoodlesFactory {
    public static final int TYPE_LZ = 1; // 兰州拉面
    public static final int TYPE_PAO = 2; // 泡面撒
    public static final int TYPE_ZA = 3; // 杂酱面
    // 提供静态方法
    public static INoodles createNoodles(int type) {
        switch (type) {
            case TYPE_LZ:return new LzNoodles();
            case TYPE_PAO:return new PaoNoodles();
            case TYPE_ZA:return new ZaNoodles();
            default:return new ZaNoodles();
        }
    }
}

测试

public class FactoryMode {
    public static void main(String[] args) {
        INoodles noodles = SimpleNoodlesFactory.createNoodles(SimpleNoodlesFactory.TYPE_ZA);
        noodles.desc();
    }
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/Emotion404/JavaBooks.git
git@gitee.com:Emotion404/JavaBooks.git
Emotion404
JavaBooks
JavaBooks
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891