工厂模式有
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工厂模式是一种设计模式,主要用于解决对象创建的问题。在编程中,当系统无法预见需要创建哪种类型的实例,或者系统不应依赖于对象如何被创建、组合和表达的细节时,工厂模式是一个很好的选择。 简单工厂模式是...
"设计模式之java工厂模式"是关于如何优雅地创建对象的一种经典设计模式,它属于创建者模式类别。创建者模式主要关注对象的创建,而工厂模式则在其中扮演着重要角色,因为它提供了一种抽象的方式来创建对象,从而使...
在软件设计模式中,工厂模式是一种非常基础且实用的创建型模式。它的主要目的是提供一个创建对象的接口,隔离了具体类的实例化过程,使得客户端可以无须知道所创建的对象的具体类,只需要知道它是从某个特定的工厂来...
Java工厂模式是面向对象设计模式中的一个核心模式,它提供了一种创建对象的最佳方式。在工厂模式中,当客户端需要创建一个对象时,它只需要指定所要创建的对象的类名,而无需知道具体的创建逻辑。这样,客户端与具体...
例题简单的阐述了Java工厂模式的概念,有利于读者更好地了解Java工厂模式
JAVA工厂模式.pptJAVA工厂模式.pptJAVA工厂模式.pptJAVA工厂模式.pptJAVA工厂模式.pptJAVA工厂模式.pptJAVA工厂模式.ppt
**JAVA工厂模式** Java工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。在工厂模式中,当我们创建对象时,不会直接实例化具体类,而是通过一个专门的工厂类来创建对象。这种模式的主要优点是客户端...
Java工厂模式是一种常用的设计模式,它是创建型设计模式的一种,主要解决对象创建过程中复杂的实例化逻辑,使得代码更加模块化,降低了系统耦合性。在Java编程中,工厂模式经常被用于封装对象的创建过程,使得客户端...
Java工厂模式是面向对象设计模式中的一个基础模式,它提供了一种创建对象的最佳方式。在工厂模式中,当客户端请求创建一个对象时,不会直接实例化对象,而是调用一个工厂类来创建。这种模式的核心在于封装了对象的...
Java工厂模式是一种设计模式,主要用于创建对象,通过提供一个过渡接口来隔离对象的创建过程,增强代码的灵活性。根据《Java与模式》的分类,工厂模式包括简单工厂模式、工厂方法模式和抽象工厂模式。 简单工厂模式...
JAVA工厂模式工厂方法模式.pdf
Java工厂模式是一种设计模式,它是创建型模式的一种,主要用于封装对象的创建过程,提供一个统一的接口,使得客户端代码在使用具体产品时无需关注产品是如何被创建的。工厂模式的核心思想是“隔离类的实例化过程”,...
本文将深入探讨Java中的工厂模式,包括基本的工厂模式、抽象工厂模式以及工厂方法模式。 **工厂模式**:工厂模式的核心思想是提供一个创建对象的接口,但让实现这个接口的类来决定实例化哪一个类。这样,客户端无需...