当前位置:首页 > 开发 > 编程语言 > Java > 正文

java工厂模式

发表于: 2015-07-14   作者:3213213333332132   来源:转载   浏览:
摘要: 工厂模式有 1、工厂方法 2、抽象工厂方法。 下面我的实现是抽象工厂方法, 给所有具体的产品类定一个通用的接口。 package 工厂模式; /** * 航天飞行接口 * * @Description * @author FuJianyong * 2015-7-14下午02:42:05 */ public interface SpaceF
工厂模式有
1、工厂方法
2、抽象工厂方法。

下面我的实现是抽象工厂方法,

给所有具体的产品类定一个通用的接口。
package 工厂模式;

/**
 * 航天飞行接口
 * 
 * @Description
 * @author FuJianyong
 * 2015-7-14下午02:42:05
 */
public interface SpaceFlight {
    /**
     * 任务 
     */
    void task();
    
}




具体的产品类

package 工厂模式;

/**
 * 长征运载火箭
 * 
 * @Description
 * @author FuJianyong
 * 2015-7-14下午03:08:10
 */
public class LongMarch implements SpaceFlight {

	public LongMarch(){
		System.out.println("产品:\t长征运载火箭");
	}
	
	@Override
	public void task() {		
		System.out.println("任务:\t把航天器送上太空");
	}

}



package 工厂模式;

/**
 * 神舟飞船
 * 
 * @Description
 * @author FuJianyong
 * 2015-7-14下午03:18:00
 */
public class ShenzhouSpaceship implements SpaceFlight {

	public ShenzhouSpaceship(){
		System.out.println("产品:\t神舟飞船");
	}
	
	@Override
	public void task() {
		System.out.println("任务:\t承载宇航员在太空中溜达");
	}

}



package 工厂模式;

/**
 * 嫦娥探测器
 * 
 * @Description
 * @author FuJianyong
 * 2015-7-14下午03:21:59
 */
public class ChangeProber implements SpaceFlight {

	public ChangeProber(){
		System.out.println("产品:\t嫦娥探测器");
	}
	
	@Override
	public void task() {
		System.out.println("任务:\t探测月球信息");
	}
}



给所有工厂定一个抽象工厂基类。

package 工厂模式;

/**
 * 抽象工厂
 * 
 * @Description
 * @author FuJianyong
 * 2015-7-14下午02:42:17
 */
public abstract class Factory {

	/**
	 * 生产产品
	 */
	abstract SpaceFlight produce();
	
}



具体的工厂类

package 工厂模式;

/**
 * 长征运载火箭工厂
 * 
 * @Description
 * @author FuJianyong
 * 2015-7-14下午04:14:45
 */
public class LongMarchFactory extends Factory {

	public LongMarchFactory(){
		System.out.println("工厂:\t长征运载火箭工厂");
	}
	
	@Override
	SpaceFlight produce() {
		return new LongMarch();
	}

}



package 工厂模式;

/**
 * 神舟飞船工厂
 * 
 * @Description
 * @author FuJianyong
 * 2015-7-14下午03:58:07
 */
public class SpaceshipFactory extends Factory{

	public SpaceshipFactory(){
		System.out.println("工厂:\t神舟飞船工厂");
	}
	
	@Override
	SpaceFlight produce() {		
		return new ShenzhouSpaceship();
	}
	
}



package 工厂模式;

/**
 * 嫦娥飞行探测器工厂
 * 
 * @Description
 * @author FuJianyong
 * 2015-7-14下午04:00:57
 */
public class ProberFactory extends Factory {
	
	public ProberFactory(){
		System.out.println("工厂:\t嫦娥飞行探测器工厂");
	}

	@Override
	SpaceFlight produce() {
		return new ChangeProber();
	}
}



测试类

package 工厂模式;

/**
 * 测试抽象工厂
 * 
 * @Description
 * @author FuJianyong
 * 2015-7-14下午03:25:15
 */
public class FactoryMain{

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		//具体工厂
//		Factory factory = new LongMarchFactory();
		Factory factory = new ProberFactory();
//		Factory factory = new SpaceshipFactory();
		//生产产品
        SpaceFlight sapceFlight = factory.produce();
        //产品属性
        sapceFlight.task();
	}


}



三个工厂测试的结果依次为

工厂:	长征运载火箭工厂
产品:	长征运载火箭
任务:	把航天器送上太空

工厂:	嫦娥飞行探测器工厂
产品:	嫦娥探测器
任务:	探测月球信息

工厂:	神舟飞船工厂
产品:	神舟飞船
任务:	承载宇航员在太空中溜达

java工厂模式

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
工厂方法模式(Factory Method),定义一个用于创建对象的接口,让子类决定实例化哪 一个类。工厂方
1、工厂方法模式(Factory Method) 工厂方法模式分为三种: 11、普通工厂模式,就是建立一个工厂类
抽象工厂模式(Abstract Factory Pattern)是工厂方法模式的进一步抽象,其英文原话"Provide an int
工厂模式 工厂设计模式在实际开发中是最常用的模式之一也是非常经典的模式之一,今天通过写博的方式
一、JAVA工厂模式 工厂模式专门负责将大量有共同接口的类实例化。 工厂模式可以动态决定将哪一个类
java中的工厂模式 举两个例子以快速明白Java中的工厂模式: 女娲抟土造人 话说:“天地开辟,未有人
工厂模式定义:提供创建对象的接口. 为何使用? 工厂模式是我们最常用的模式了,著名的Jive论坛 ,就大
原文出自:http://blog.csdn.net/zhengzhb/article/details/7359385 定义:为创建一组相关或相互依
原文出处:http://blog.csdn.net/zhengzhb/article/details/7348707 定义:定义一个用于创建对象的
同样不是怎么高深的或者新的东西,只是一种编程方式,甚至可以说只是编程风格而已。 只是抽象工厂模
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号