java工厂方法模式记录日志_Java 工厂方法模式的简单示例

工厂方法模式:也叫工厂模式,属于类创建型模式,工厂父类(接口)负责定义产品对象的公共接口,而子类工厂则负责创建具体的产品对象。

目的:是为了把产品的实例化操作延迟到子类工厂中完成,通过工厂子类来决定究竟应该实例化哪一个产品具体对象。

工厂方法模式包含四个部分:

1.抽象产品:产品对象同一的基类,或者是同一的接口。

2.具体的产品:各个不同的实例对象类

3.抽象工厂:所有的子类工厂类的基类,或是同一的接口

4.具体的工厂子类:负责每个不同的产品对象的实际创建

f75f2a699eed4c8df11133a525d9ed90.png

具体代码示例,我们以买水果作为演示。

定义买的接口:

public interfaceIFrutis {voidbuy();

}

定义两个实现接口的类:

public class Banana implementsIFrutis{

@Overridepublic voidbuy() {

System.out.println("欢迎来买香蕉");

}

}

抽象的工厂接口:

public interfaceIFruitFactory {

IFrutis createFactory();

}

具体工厂子类:

public class BananaFactory implementsIFruitFactory {

@OverridepublicIFrutis createFactory() {return newBanana();

}

}

public class AppleFactory implementsIFruitFactory {

@OverridepublicIFrutis createFactory() {return newApple();

}

}

测试:

public classStudentTest {public static voidmain(String[] args) {//根据 需求的水果 生成 实体工厂//创建香蕉工厂

IFruitFactory iFruitFactory = newBananaFactory();//实体工厂

IFrutis banana =iFruitFactory.createFactory();

banana.buy();

IFruitFactory iFruitFactory1= newAppleFactory();

IFrutis factory=iFruitFactory1.createFactory();

factory.buy();

}

}

结果:

1 欢迎来买香蕉2 欢迎来买苹果

工厂方法模式,是最标准的一种工厂模式,也是应用广泛的一种模式。 But 工厂模式有一个很大的缺点:

就是,如果增加了一款产品,比如是Lenovo 那么你就需要为lenovo创建一个工厂类。

一个具体工厂只能创建一种具体产品。

系统类的个数将成对增加,在一定程度上增加了系统的复杂度;同时,有更多的类需要编译和运行,会给系统带来一些额外的开销。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值