工厂模式详解(简单工厂模式,工厂方法模式,抽象工厂模式,只给出抽象工厂模式具体代码)

1.简单工厂模式(Factory)

应用场景:又叫做静态工厂方法(StaticFactory Method)模式,但不属于 23 种设计模式之一。简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品。Spring 中的 BeanFactory 就是简单工厂模式的体现,根据传入一个唯一的标识来获得 Bean 对象,但是类否是在传入参数后创建还是传入参数前创建这个要根据具体情况来

体现在代码就是:我有工厂类 (里面有getMilk方法,通过判断参数返回不同牛奶对象),牛奶接口,蒙牛类,伊利类,特仑苏类实现牛奶接口,测试main方法也就是顾客,main方法可通过工厂类的生产方法,传递一个参数,可以来获得某种牛奶对象
也就是 Milk mn = new Factory().getMilk("蒙牛");
 

2.工厂方法模式(Factory Method) 

应用场景:通常由应用程序直接使用 new 创建新的对象,为了将对象的创建和使用相分离,采用工厂模
式,即应用程序将对象的创建及初始化职责交给工厂对象。
一般情况下,应用程序有自己的工厂对象来创建 Bean.如果将应用程序自己的工厂对象交给 Spring 管
理,那么 Spring 管理的就不是普通的 Bean,而是工厂 Bean

体现在代码就是:
后面逐渐演变,分工细化,体现在代码就是:我有工厂接口,里面有生产牛奶的方法,然后有蒙牛工厂类,伊利工厂类,特仑苏工厂类,都实现工厂接口,重写方法里返回值分别为,蒙牛牛奶,伊利牛奶,特仑苏牛奶。还是有牛奶接口,蒙牛类,伊利类,特仑苏类,测试main方法也就是顾客,当需要蒙牛时创建蒙牛工厂对象来获得蒙牛牛奶

Factory fac = new MengNiuFactory();
Milk mengNiu = fac.getMilk();

 3.抽象工厂方法模式(Abstract Factory Method) 

上面是蒙牛工厂生产蒙牛牛奶,但是对于用户来说,你什么工厂不关我的事,我需要蒙牛牛奶的时候还要去找蒙牛工厂,太麻烦。我只想找一个工厂,这个工厂什么牛奶都有,我需要蒙牛时你给我蒙牛,需要伊利时给我伊利就行了,所以就有了目前最复杂工厂模式,抽象工厂模式,spring里面就用了

代码总览如下(具体代码往下翻)

Milk接口

 

蒙牛牛奶类

伊利牛奶类

抽象工厂类,

牛奶工厂类

蒙牛工厂类

伊利工厂类

测试类(是不是看到了抽象工厂类带来的好处,它对扩展开放,对修改关闭,当我用户想要喝三鹿的时候只需要修改调用方法为getSanLu即可)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我才是真的封不觉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值