工厂模式 六 集连载 之 "工厂方法模式" 3/6_JAVA_编程开发_程序员俱乐部

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

工厂模式 六 集连载 之 "工厂方法模式" 3/6

 2015/4/29 12:52:47  hnliu_hong  程序员俱乐部  我要评论(0)
  • 摘要:相关视频下载地址:链接:http://pan.baidu.com/s/1sjJTFyP密码:sl81Java爱好者交流群:369508920免费获取项目资源工厂方法(FactoryMethod)模式简介工厂方法(FactoryMethod)模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口
  • 标签:

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

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

?

工厂方法(Factory Method)模式简介

? ? ? ? ? 工厂方法(Factory Method)模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的品

? ? ? ? ? ?工厂方法模式是简单工厂模式的衍生,解决了许多简单工厂模式的问题。首先完全实现‘开-闭 原则’,实现了可扩展。其次更复杂的层次结构,可以应用于产品结果复杂的场合

?

定义一个抽象工厂, 具体对象创建交给子工厂

?

class="java">/*
 * 工厂方法模式:首先定义一个创建对象的接口,把具体的创建功能,延迟的子类工厂
 * */
public interface IFactory {
	// 用来创建交通工具
	public Vehicle getVehicle();
}

?

?

一个子工厂负责创建一个对象

?

public class BusFactory implements IFactory {
	@Override
	public Vehicle getVehicle() {
		return new Bus();
	}
}

?

public class CarFactory implements IFactory {
	@Override
	public Vehicle getVehicle() {
		return new Car();
	}
}

?

public class JeepFactory implements IFactory {
	@Override
	public Vehicle getVehicle() {
		return new Jeep();
	}
}

根据参数, 先获取工厂然后在创建对象

?

/**
 * 
 * @author 专注Java、Android 企业定制培训
 * @添加QQ技术交流群: 369508920 可免费获取项目视频
 * @Description: TODO(设计模式之工厂模式)
 * @http://hnliu-hong.iteye.com/ 下载图文与源码
 * @Title: PatternDemo.java
 * @Package cn.it.pattern.demo03
 */
public class PatternDemo {
	/*
	 * 简单工厂: 最大优势在于工厂类中就包含了必要的逻辑判断,所有对象的创建都放到简单工厂中(新建对象会修改代码) 工厂方法:
	 * 定义了一个创建对象的工厂, 让子类决定实例化哪个对象, 以后新增对象仅仅需要添加新的工厂即可 (遵循了开放封闭原则) 工厂优势:
	 * 遵循了开放封闭原则, 遵循了单一职责的原则(每一个类仅仅只有一个功能) 工厂模式缺点: 代码量过大, 而且把判断的代码移动到了客户端 解决方案:
	 * 抽象工厂+反射机制
	 */
	public static void main(String[] args) {
		// 1: 首先根据参数来获取具体的工厂子类
		IFactory factory = null;
		switch (args[0]) {
		case "car":
			factory = new CarFactory();
			break;
		case "jeep":
			factory = new JeepFactory();
			break;
		default:
			factory = new BusFactory();
			break;
		}
		// 2:只要有了具体的工厂子类,则可以直接创建对象
		Vehicle vehicle = factory.getVehicle();
		vehicle.run();
	}
}

?

  • 设计模式之工厂方法_03.zip (21.3 KB)
  • 下载次数: 0
  • 相关文章
发表评论
用户名: 匿名