更新时间:2020-09-17 15:03:48 来源:动力节点 浏览1758次
一.简单工厂模式
简单工厂模式就是把对类的创建初始化全都交给一个工厂来执行,而用户不需要去关心创建的过程是什么样的,只用告诉工厂我想要什么就行了。而这种方法的缺点也很明显,违背了设计模式的开闭原则,因为如果你要增加工厂可以初始化的类的时候,你必须对工厂进行改建
代码如下:
package com.long88.ad.test;
interface Car {
public void getCar();
}package com.long88.ad.test;
public class BMW implements Car{
@Override
public void getCar() {
System.out.printf("来一辆BMW!");
}
}package com.long88.ad.test;
public class BYD implements Car {
@Override
public void getCar() {
System.out.printf("来一辆BYD!");
}
}package com.long88.ad.test;
public class CarFactor {
public static Car carFactor(Class tClass){
if (tClass.getName().equals(BMW.class.getName())){
return new BMW();
}
if (tClass.getName().equals(BYD.class.getName())){
return new BYD();
}
return null;
}
}package com.long88.ad.test;
public class testFactory {
public static void main(String[] args) {
Car car = CarFactor.carFactor(BYD.class);
car.getCar();
}
}结果如图:

二. 工厂方法模式
设计一个工厂的接口,你想要什么东西,就写个类继承于这个工厂,这样就不用修改什么,直接添加就行了。就相当于,我这个工厂是用来生汽车的,而要什么品牌的汽车具体分到了每个车间,如果新多了一种品牌的汽车,直接新增一个车间就行了。那么问题又来了,如果想要生产大炮怎么办?
代码如下:
package com.long88.ad.test;
interface Car {
public void getCar();
}package com.long88.ad.test;
public class BMW implements Car{
@Override
public void getCar() {
System.out.printf("来一辆BMW!");
}
}package com.long88.ad.test;
public class BYD implements Car {
@Override
public void getCar() {
System.out.printf("来一辆BYD!");
}
}//抽象工厂
interface CarFactory{
public Car getCarByFactory();
}// BMW 具体工厂类
class BMWfactory implements CarFactory{
@Override
public Car getCarByFactory() {
return new BMW();
}
}// BYD 具体工厂类
class BYD factory implements CarFactory{
@Override
public Car getCarByFactory() {
return new BYD ();
}
}public class TestFactory {
public static void main(String[] args) {
Car bmw= new BMWfactory().getCarByFactory();
bmw.getCar();
}
}以上就是对“Java工厂模式菜鸟教程,快学起来呀”的介绍,希望对大家有所帮助,还想学习更多关于Java的课程,可以关注动力节点官网Java视频教程,免费下载学习。
Java实验班
0基础 0学费 15天面授
Java就业班
有基础 直达就业
Java夜校直播班
业余时间 高薪转行
Java在职加薪班
工作1~3年,加薪神器
Java架构师班
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习