java中的工厂模式是什么,请举例说明工厂模式就是在接口和子类之间加入java工厂模式例子代码了一个过渡端java工厂模式例子代码,通过此过渡端获得接口java工厂模式例子代码的实例化对象java工厂模式例子代码,这个过渡端也就是所谓的工厂类 。这样以后如果再有程序子类要扩充,直接修改工厂类客户端就可以根据标记得到相应的实例 , 增加了程序的灵活性 。eg:
interface Fruit{
public void eat() ;
}
class Apple implements Fruit{
public void eat(){
System.out.println("** $$$$$") ;
}
};
class Orange implements Fruit{
public void eat(){
System.out.println("** ##### 。") ;
}
};
class Factory{ // 定义工厂类
public static Fruit getInstance(String className){
Fruit f = null ;
if("apple".equals(className)){ // 判断
f = new Apple() ;
}
if("orange".equals(className)){ // 判断
f = new Orange() ;
}
return f ;
}
};
public class InterfaceCaseDemo{
public static void main(String args[]){
Fruit f = Factory.getInstance(null) ; // 实例化接口
f.eat() ;
}
};
用java 编写程序写出简单的工厂模式?java中工厂模式分为:
简单工厂模式(Simple Factory)
2. 工厂方法模式(Factory Method)
3. 抽象工厂模式(Abstract Factory)
每种方法的实现不同
提供一个简单工厂模式的案例:
public abstract class Woman {
private String mySkill;
public String getMySkill() {
return mySkill;
}
public Woman() {
//System.out.println("我是女人");
}
public void setMySkill(String mySkill) {
this.mySkill = mySkill;
}
}
----------------------------
public class LovelinessWoman extends Woman{
/*
* 可爱型女人
*/
public LovelinessWoman()
{
String mySkill="撒过娇、出过轨、勾引领导下过水";
this.setMySkill(mySkill);
}
}
-----------------------------
public class SteelinessWoman extends Woman{
/*
* 冷酷型女人
*/
public SteelinessWoman()
{
String mySkill="装过神、弄过鬼,跟别人老公亲过嘴";
this.setMySkill(mySkill);
}
}
--------------------------------------
public class WomanMakeFactory {
public Woman findWoman(int typeID) {
switch (typeID) {
case 1:
return new LovelinessWoman();
case 2:
return new VirtuousWoman();
case 3:
return new SteelinessWoman();
default:
return null;
}
}
public Woman findWoman(String type) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
/*
* Type t = Type.GetType("SimpleFactory." + type);
* Woman wm =
* (Woman)Activator.CreateInstance(t); return wm;
*/
String string="cn.jbit.design.simplefactory."+type;
Class c = Class.forName(string);
Woman wm = (Woman) c.newInstance();
return wm;
}
}
-------------------------
调用
public class Test2 {
/**
* @param args
* @throws IllegalAccessException
* @throws InstantiationException
* @throws ClassNotFoundException
*/
public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
Scanner input=new Scanner(System.in);
boolean sel=false;
do {
System.out.println("请选择你要找的女人的类型");
System.out.println("LovelinessWoman:可爱型女人 VirtuousWoman:善良型女人 SteelinessWoman:冷酷型女人");
String typeid=input.next();
WomanMakeFactory factory = new WomanMakeFactory();
推荐阅读
- 钉钉直播解压球,怎么打开钉钉解压文件
- 怎么检测电脑掉帧,电脑怎么检测网速
- 家里换什么样的路由器好,家里安装什么路由器好
- 手机咋上快手直播,手机咋上快手直播呢
- 虚拟机linux搜索命令 虚拟机搜索文件命令
- 下载小图标,图标下载软件
- 公众号招聘渠道怎么做好,公众号招聘渠道怎么做好的
- 鲍勃世界冒险1游戏下载,鲍勃历险记
- python定义函数阶乘 python自定义函数阶乘