工厂方法模式的例子
来源:互联网 发布:vue.js table表格组件 编辑:程序博客网 时间:2024/05/21 10:17
/**
*
*/
package com.youyj.methodfactory;
/**
* 抽象产品(Product)角色:工厂方法模式所创建的对象的超类型,也就是产品对象的共同父类或共同拥有的接口
* @author Administrator
*
*/
interface Moblie
{
public void call();
}
/**
* 具体产品(Concrete Product)角色:这个角色实现了抽象产品角色所定义的接口。某具体产品有专门的具体工厂创建,它们之间往往一一对应
* @author Administrator
*
*/
class Motorola implements Moblie
{
@Override
public void call()
{
System.out.println("Motorola Producted");
}
}
/**
* 具体产品(Concrete Product)角色:这个角色实现了抽象产品角色所定义的接口。某具体产品有专门的具体工厂创建,它们之间往往一一对应
* @author Administrator
*
*/
class Nokia implements Moblie
{
@Override
public void call()
{
System.out.println("Nokia Producted");
}
}
/**
* 抽象工厂(Creator)角色:是工厂方法模式的核心,与应用程序无关。任何在模式中创建的对象的工厂类必须实现这个接口
* @author Administrator
*
*/
interface MoblileFactory
{
public Moblie produceMobile(String type);
}
/**
* 具体工厂(Concrete Creator)角色:这是实现抽象工厂接口的具体工厂类,包含与应用程序密切相关的逻辑,并且受到应用程序调用以创建产品对象
* @author Administrator
*
*/
class MotorolaFactory implements MoblileFactory
{
public Moblie produceMobile(String type)
{
Moblie moble = null;
try
{
moble = (Moblie) Class.forName("com.youyj.methodfactory." + type)
.newInstance();
}
catch (InstantiationException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IllegalAccessException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (ClassNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return moble;
}
}
/**
* 具体工厂(Concrete Creator)角色:这是实现抽象工厂接口的具体工厂类,包含与应用程序密切相关的逻辑,并且受到应用程序调用以创建产品对象
* @author Administrator
*
*/
class NokiaFactory implements MoblileFactory
{
public Moblie produceMobile(String type)
{
Moblie moble = null;
try
{
moble = (Moblie) Class.forName("com.youyj.methodfactory." + type)
.newInstance();
}
catch (InstantiationException e)
{
e.printStackTrace();
}
catch (IllegalAccessException e)
{
e.printStackTrace();
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
}
return moble;
}
}
public class MethodFactoryDemo
{
public static void main(String[] argv)
{
MoblileFactory mf = new MotorolaFactory();
Moblie mb = mf.produceMobile("Motorola");
mb.call();
mf = new NokiaFactory();
mb = mf.produceMobile("Nokia");
mb.call();
}
}
- 工厂方法模式的例子
- 工厂方法模式(例子)
- 工厂方法模式的java实现例子
- 工厂方法模式的java实现例子
- 工厂方法模式解析例子
- java va中工厂模式( 静态工厂模式、工厂方法模式、抽象工厂模式)的介绍以及简单例子
- 工厂方法模式--结合具体例子学习工厂方法模式
- 工厂模式--手机工厂的例子
- 另一个工厂模式的例子
- Java的工厂模式例子
- 工厂模式的简单例子
- 简单工厂模式和工厂模式的实现例子
- C++设计模式——工厂方法及工厂方法的隐藏实现(qq空间背景的例子)
- C++实现工厂模式的例子
- 仅仅一个工厂设计模式的例子
- 工厂模式例子之计算器的实现
- 简单工厂模式的java实现例子
- 工厂模式的生产披萨例子
- Flex 和JavaScript 交互(带参)
- android1.5 android2.0+获取联系人的不同之处
- view旋转
- 大型网站采用什么系统架构保证性能稳定性
- android mokey操作简介
- 工厂方法模式的例子
- 迭代器的型别 《STL 源码剖析》阅读笔记
- MSDN
- EGL Configurations
- 用VS2005打开VS2008建的解决方案
- 菜单
- 第5章 原型模式(Protype Pattern)
- AS2 点击转到新网页,并且执行网页中JS
- 计时器 每个一秒输出一次