java设计模式:工厂模式

工厂模式。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
工厂模式可以在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。
使用工厂模式可以将对象的创建与对象的使用分开,达到解耦的效果。另外也省去了写创建对象的代码。

工厂模式分为三类:

1.简单工厂模式
创建一个汽车接口,定义一个品牌方法。不同的汽车有不同的品牌。
1484390-20181229153447993-691961591.png

创建实现该接口的具体汽车实现类
1484390-20181229153625995-1354616363.png

1484390-20181229153637911-703788684.png

创建工厂类

1484390-20181229153837632-1646205643.png

之后就可以根据参数来实例化相应的类了。
1484390-20181229154045584-1698002227.png

2.工厂方法模式
该模式不再是一个统一的工厂类来创建所有的对象,而是针对不同的对象提供不同的工厂。也就是说每个对象都有一个与之对应的工厂。
创建一个工厂接口
1484390-20181229155802041-1700926233.png

增加相关工厂类
1484390-20181229155829165-2028984620.png

1484390-20181229155837858-1821536789.png

此时想要实例化哪个类就调用这个类对应的工厂类的product()方法就好了

1484390-20181229155940145-1201548544.png

3.抽象工厂模式
相比于工厂方法模式,抽象工厂模式可以生产多个产品(或者可以说是一套产品),前提这些产品必须是有关系的。

比如说电脑主机与显示器是一整套产品,我们可以创建一个工厂,这个工厂可以生产不同的电脑主机与显示器。

新建一个电脑接口
1484390-20181229164615794-474746914.png

创建接口对应实现类
1484390-20181229164745119-1161854458.png

1484390-20181229164827442-196552281.png

新建一个显示器接口
1484390-20181229164932451-1221364488.png

创建接口对应实现类
1484390-20181229165119142-1983009951.png

1484390-20181229165127514-973337073.png

创建工程接口
1484390-20181229165330514-1526391729.png

创建具体工厂,用来实例化工厂对应的电脑类与显示器类
1484390-20181229165519951-1987155463.png

1484390-20181229165527393-1188390939.png

测试方法:

1484390-20181229165926593-1313556053.png

转载于:https://www.cnblogs.com/keyforknowledge/p/10196964.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值