简单工厂模式

在java中接口是一种特殊的抽象类。接口的思想就是封装隔离。
接口的出现的意义在于定义实现类的外观,就相当于一份契约,根据实际需要的功能,约定了实现类的外观。


简单工厂
可以用来创建接口,抽象类或者普通类的实例。
那什么是静态工厂呢?通常把简单工厂类实现成一个工具类,直接使用静态方法就可以了,也就是说简单工厂的方法通常都是静态的,所以也称为静态工厂。
简单工厂的范围建议控制在一个独立的组件级别或者一个模块级别。
命名方式建议为“模块名称+Factory”,方法命名建议为“create+接口名称”。

下面是一个简单的例子。
说现在有一个接口Api,存在两个实现类ImplA与ImplB。
public interface Api {
	void simpleFactory(String name);
}
public class ImplA implements Api{
	@Override
	public void simpleFactory(String name) {
		System.out.println(name+"说:呵呵,这是简单工厂模式");
	}
	
}
public class ImplB implements Api{
	@Override
	public void simpleFactory(String name) {
		System.out.println(name+"说:哈哈,这是简单工厂模式");
	}
}
另外还存在一个客户端Client,存在需求是根据不同的条件获取Api不同的实现类的实例。
面向接口编程的意义在于,Client不需要知道太多的服务端的实现,它只需要有一个接口就可以了。
这种情况下就需要使用工厂模式,Client只需要让工厂根据它提供的条件创建不同的实例就可以了,无需关心服务端做了什么工作。
所以工厂与客户端的代码如下:
public class Factory {
	public static Api createApi(int i) {
		Api api = null;
		if (i == 0) {
			api = new ImplA();
		} else if (i == 1) {
			api = new ImplB();
		}
		return api;
	}
}
public class Client {
	/*
	 * 使用简单工厂创建 Api 对象,实现基本的面向接口编程 
	 * 决定创建什么类型的对象 的参数 的产生方式有很多,比如某个业务逻辑产生
	 */
	public static void main(String[] args) {
		Api api = Factory.createApi(0);

		api.simpleFactory("小明");

		Api api1 = Factory.createApi(1);

		api1.simpleFactory("小红");
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值