创建型模式之工厂模式

工厂模式

实现的创建者和调用者的分离

1.简单工厂模式

也叫静态工厂模式,工程类一般使用的是静态方法,通过接收不同的参数返回不同的实例对象。要增加新产品需要修改代码(违反开闭原则)。

/**
 * 汽车生产简单工厂
 */
public class CarFactory {
	public static Car createCar(String type) {
		if(type.equals("迪奥")) {
			return new Aody();
		}else if(type.equals("ysl")){
			return new Byd();
		}else {
			return null;
		}
	}
	
	/*public static Car createAody() {
		return new Aody();
	}
	public static Car createByd() {
		return new Byd();
	}*/
	
}

/**
 * 使用简单工厂模式,有一个CarFactory工厂
 * 不需要知道生产具体汽车的细节(Aody类,Byd类),直接调用工厂生产
*/
public class Clint02 {
	public static void main(String[] args) {
		Car c1=CarFactory.createCar("奥迪");
		Car c2=CarFactory.createCar("比亚迪");
		
		c1.run();
		c2.run();
	}
}

类图

2.工厂方法模式

避免了简单工厂的缺点(开闭原则),有一组实现了相同接口的的工厂类,但需要创建更多的类

public interface CarFactiry {
	Car createCar();
}
public class AodyFactory implements CarFactiry {

	@Override
	public Car createCar() {
		// TODO 自动生成的方法存根
		return new Aody();
	}

}
public class BydFactory implements CarFactiry {

	@Override
	public Car createCar() {
		// TODO 自动生成的方法存根
		return new Byd();
	}

}
public class Client01 {
	public static void main(String[] args) {
		Car c1=new BydFactory().createCar();
		Car c2=new AodyFactory().createCar();
		
		c1.run();
		c2.run();
	}
}

类图
这两个模式相比,一般使用简单工厂模式

3.抽象工厂模式

不可以增加产品,可以增加产品族
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值