菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
243
0

工厂模式

原创
05/13 14:22
阅读数 916483

标签:com   class   http   blog   code   div   img   style   java   size   javascript   

1.普通工厂模式

mamicode.com,码迷

mamicode.com,码迷
package CommonFactory;
public class Test {
    public static void main(String[] args) {
        VehicleFactory factory = new CarFactory();
        Moveable M = factory.create();
        M.run();
    }
}
mamicode.com,码迷

这样,只要改变new CarFactory();一条语句,程序就会有不同的行为,普通工厂主要在产品的维度上进行扩展。

2.抽象工厂模式

普通工厂模式一次只能生产一件物品,抽象工厂模式一次生产一套物品。

mamicode.com,码迷

mamicode.com,码迷
public class Test {
    public static void main(String[] args) {
        //DefaultFactory factory = new DefaultFactory();
        AbstractFactory factory = new DefaultFactory();
        Vehicle vechile = factory.createVehicle();
        vechile.run();
        Food food = factory.createFood();
        food.printName();
    }
}
mamicode.com,码迷

同样只要修改new DefaultFactory();一行代码就可以使整个程序的行为发生变化;但抽象工厂的缺点是“牵一发动全身”,要是想在工厂中添加一个物品,则所有继承自AbstractFactory的类都需要修改。

工厂模式,码迷,mamicode.com

工厂模式

发表评论

0/200
243 点赞
0 评论
收藏
为你推荐 换一批