设计模式之工厂模式Factory Pattern

名词解释:

顾名思义,工厂模式就是创建对象的时候使用面向接口形式的开发,具体的实现都是由接口的实现类来做,而在调用的时候不用去关心具体的实现细节,只需要通过入参来决定创建怎么样的一个对象。

解决问题:

1.这样就解决了调用者在创建对象的时候不用去关心实现的细节 

2.对客户端调用者隐藏了具体的细节

说白了这两个问题都是在调用的时候通过选择的方式达到客户端调用的目的,而向客户端隐藏具体的细节。

适应场景:

各种面临选择的问题,比如1、日志记录器:记录可能记录到本地硬盘、系统事件、远程服务器等,用户可以选择记录日志到什么地方。 2、数据库访问,当用户不知道最后系统采用哪一类数据库,以及数据库可能有变化时。 3、设计一个连接服务器的框架,需要三个协议,"POP3"、"IMAP"、"HTTP",可以把这三个作为产品类,共同实现一个接口……

具体实现:

1.定义业务接口


public interface Car {
	
	public void makeCar();

}

2.定义不同的实现

public class BmwCar implements Car {

	@Override
	public void makeCar() {
		// TODO Auto-generated method stub
		System.out.println("生产Bmw车");
	}

}
public class AudiCar implements Car {

	@Override
	public void makeCar() {
		// TODO Auto-generated method stub
		System.out.println("生产Audi车");
	}

}

3.定义工厂和简单的客户端实现

public class CarFactory {

	public Car maker(String brand) {
		if (brand.equals("Audo")) {
			return  new AudiCar();
		} else if (brand.equals("Bmw")) {
			return  new BmwCar();
		}
		return null;
	}
	
	//模拟客户端调用
	public static void main(String[] args) {
		CarFactory carFactory = new CarFactory();
		Car car1 = carFactory.maker("Audo"); 
		car1.makeCar();
		Car car2 = carFactory.maker("Bmw"); 
		car2.makeCar();
	}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值