首页
Linux教程
Linux资讯
Linux入门
Linux运维
Linux系统
Linux服务器
Linux安全
Linux问答
SHELL
树莓派
正则
linux命令
安装
Linux监控
运维自动化
Ansible
Piwik
CentOS
Deepin
Ubuntu
Debian
FreeBSD
Nginx
Apache
openresty
Tengine
宝塔
SSH
页面位置:
Linuxboy
>
Linux教程
>
正文
Java教程
Java实现的注册工厂模式
文章由LinuxBoy分享于2019-03-31 09:03:06
热评(190)
Java实现的注册工厂模式
Java实现的注册工厂模式
package
com.eric.reflect;
import
java.util.ArrayList;
import
java.util.Random;
/*
* factory interface
* */
interface
Factory<T> {
public
T create();
}
public
class
RegisterFactory {
public
static
void
main(String[] args) {
System.out.println(Part.randomPart());
}
}
class
Part {
private
static
ArrayList<Factory<?
extends
Part>> factoryList =
new
ArrayList<Factory<?
extends
Part>>();
/*
* registry all factory in factoryList when initialize class
* */
static
{
factoryList.add(
new
AirFilter().
new
AirFilterFactory());
factoryList.add(
new
CabinFilter().
new
CabinFilterFactory());
factoryList.add(
new
CabinBelt().
new
CabinBeltFactory());
factoryList.add(
new
AirBelt().
new
AirBeltFactory());
}
public
static
Part randomPart() {
return
factoryList.get(
new
Random().nextInt(factoryList.size()))
.create();
}
@Override
public
String toString() {
return
getClass().getSimpleName();
}
}
class
Filter
extends
Part {
}
class
Belt
extends
Part {
}
class
AirBelt
extends
Belt {
class
AirBeltFactory
implements
Factory<AirBelt> {
public
AirBelt create() {
return
new
AirBelt();
}
}
}
class
CabinBelt
extends
Belt {
class
CabinBeltFactory
implements
Factory<CabinBelt> {
public
CabinBelt create() {
return
new
CabinBelt();
}
}
}
class
AirFilter
extends
Filter {
class
AirFilterFactory
implements
Factory<AirFilter> {
public
AirFilter create() {
return
new
AirFilter();
}
}
}
class
CabinFilter
extends
Filter {
class
CabinFilterFactory
implements
Factory<CabinFilter> {
public
CabinFilter create() {
return
new
CabinFilter();
}
}
}
/*
*
* History:
*
*
*
* $Log: $
*/
相关内容
Java中利用反射对类的hidden成员方法和属性的访问
Java中字符串压缩的操作
用Java实现的一个简单的定时报警程序
Java动态代理简单实现
Java NIO类库Selector机制解析
Java教程:基本类型和引用类型
Java教程:实现Comparable接口
对于Java类加载过程中的顺序问题探究
排序算法(JAVA实现):冒泡排序法和插入排序法
排序算法(Java实现):选择排序法和快速排序法
今日最新
推荐文章:
Java中利用反射对类的hidden成员方法和属性的
Java中字符串压缩的操作
用Java实现的一个简单的定时报警程序
Java动态代理简单实现
Java NIO类库Selector机制解析
Java教程:基本类型和引用类型
评论暂时关闭
最新Linux教程教程
Java实现的注册工厂模式
Java中利用反射对类的hidden成员方
Java中字符串压缩的操作
用Java实现的一个简单的定时报警
Python关键语法要素笔记
Android 怎么判断手机是否联网
Linux头条
Hadoop文件损坏解决办法
学习深入Linux Sysfs编程与源码分
hadoop编程小技巧(2)---计数器
linux操作系统简单介绍
超越100G 光纤网络厂商开始推动
国内无线城市快速崛起 Wi-Fi技术
评论暂时关闭