工厂模式 六 集连载 之 "抽象工厂" 4/6_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 工厂模式 六 集连载 之 "抽象工厂" 4/6

工厂模式 六 集连载 之 "抽象工厂" 4/6

 2015/4/29 12:49:57  hnliu_hong  程序员俱乐部  我要评论(0)
  • 摘要:相关视频下载地址:链接:http://pan.baidu.com/s/1sjJTFyP密码:sl81Java爱好者交流群:369508920免费获取项目资源抽象工厂+反射模式抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。抽象工厂模式是指当有多个抽象角色时,使用的一种工厂模式。抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体的情况下,创建多个产品族中的产品对象创建抽象工厂通过Class获取对象/**抽象工厂+反射:解决了工厂方法的代码量过大问题
  • 标签:模式 抽象

相关视频下载地址:链接:http://pan.baidu.com/s/1sjJTFyP 密码:sl81

Java爱好者交流群: 369508920 免费获取项目资源

抽象工厂+反射模式

? ? ? ? 抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。抽象工厂模式是指当有多个抽象角色时,使用的一种工厂模式。抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体的情况下,创建多个产品族中的产品对象

?

创建抽象工厂通过Class获取对象

class="java" name="code">/*
 * 抽象工厂+反射: 解决了工厂方法的代码量过大问题, 而且新增对象也用修改客户端代码
 * 一个抽象工厂就可以创建N种对象,主要采用的是反射机制,把对象的创建时间延迟到运行时
 * */
public class AbstractFactory {

	public static Object getVehicle(String type) {
		// Class是Java的一个类型(File), Class它表示的是一个*.class文件
		// Class.forname: 根据类全名,来查找唯一的*.class文件
		try {
			Class clazz = Class.forName(type);
			// 获取了*.class文件后,可以创建一个对象
			return clazz.newInstance();
		} catch (Exception e) {
			throw new RuntimeException();
		}
	}

}

?

客户端只管使用即可

/**
 * @author 专注Java、Android 企业定制培训
 * @添加QQ技术交流群: 369508920 可免费获取项目视频
 * @Description: TODO(设计模式之工厂模式)
 * @Title: PatternDemo.java
 * @Package cn.it.pattern.demo01
 */
public class PatternDemo {
	/*
	 *  抽象工厂+反射: 解决了对象创建问题, 遵循了开发封闭原则 , 客户端不需要在判断
	 */
	public static void main(String[] args) {
		// 面向接口编程
		Vehicle vehicle = (Vehicle)AbstractFactory.getVehicle("cn.it.pattern.demo04.Jeep");
		vehicle.run();
	}
}

?

  • 设计模式之抽象工厂_04.zip (27.4 KB)
  • 下载次数: 0
发表评论
用户名: 匿名