工厂模式有
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工厂模式试学教程(视频) java工厂模式试学教程(视频)
Java工厂模式的一个例子,使用配置文件来决定具体生成的实例,拓展性强
例题简单的阐述了Java工厂模式的概念,有利于读者更好地了解Java工厂模式
java工厂模式java工厂模式
JAVA工厂模式.pptJAVA工厂模式.pptJAVA工厂模式.pptJAVA工厂模式.pptJAVA工厂模式.pptJAVA工厂模式.pptJAVA工厂模式.ppt
个人写的java工厂模式例子描述,很不错的,给大家共香
JAVA工厂模式工厂方法模式.pdf
java工厂模式详细讲解: 工厂模式专门负责将大量有共同接口的类实例化。工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪一个类。
Java实现的工厂模式,抽象工厂,工厂方法模式
java工厂模式-简单工厂模式:入门级工厂模式使用介绍,附案例说明
java工厂模式的教程 教你怎么用工厂模式开发java程序
JAVA工厂模式详细讲解
JAVA 设计模式: 工厂模式 代理模式 迭代模式 责任链模式 源码
java 工厂模式等 java技术 java资料PPT
Java工厂模式.pdf
JAVA工厂模式工厂方法模式[整理].pdf