- 浏览: 54214 次
- 性别:
- 来自: 上海
最新评论
package org.lxh.demo ;
import java.io.* ;
import java.util.* ;
interface Fruit
{
// 生长
public void grow() ;
// 采摘
public void pick() ;
}
class Apple implements Fruit
{
public void grow()
{
System.out.println("苹果在生长。。。 ") ;
}
public void pick()
{
System.out.println("摘苹果。。。") ;
}
};
class Orange implements Fruit
{
public void grow()
{
System.out.println("橘子在生长。。。 ") ;
}
public void pick()
{
System.out.println("摘橘子。。。") ;
}
};
class Cherry implements Fruit
{
public void grow()
{
System.out.println("樱桃在生长。。。 ") ;
}
public void pick()
{
System.out.println("摘樱桃。。。") ;
}
};
class WaterMelon implements Fruit
{
public void grow()
{
System.out.println("西瓜在生长。。。") ;
}
public void pick()
{
System.out.println("摘西瓜。。。") ;
}
};
class Banana implements Fruit
{
public void grow()
{
System.out.println("香蕉在生长。。。 ") ;
}
public void pick()
{
System.out.println("摘香蕉。。。") ;
}
};
class DD implements Fruit
{
public void grow()
{
System.out.println("DD。。。 ") ;
}
public void pick()
{
System.out.println("摘DD。。。") ;
}
};
class Factory
{
public static Fruit getFruitInstance(String type)
{
Fruit f = null ;
// 通过Class类完成
try
{
f = (Fruit)Class.forName(type).newInstance() ;
}
catch (Exception e)
{
System.out.println(e) ;
}
return f ;
}
};
// 定义一个新类,此类可以从键盘输入数据
class InputData
{
BufferedReader buf = null ;
public InputData()
{
buf = new BufferedReader(new InputStreamReader(System.in)) ;
}
public String getString()
{
String str = null ;
try
{
str = buf.readLine() ;
}
catch (Exception e)
{
}
return str ;
}
};
class Init
{
public static Properties getPropertiesInit()
{
Properties p = new Properties() ;
try
{
p.loadFromXML(new FileInputStream("lxh.xml")) ;
}
catch (Exception e)
{
}
return p ;
}
};
public class FactoryDemo06
{
public static void main(String args[])
{
Properties p = new Properties() ;
p = Init.getPropertiesInit() ;
System.out.println(p) ;
// 加入一个可以从键盘输入数据的类
System.out.print("输入要使用的子类代码:") ;
String code = new InputData().getString() ;
System.out.println(p.getProperty(code)) ;
Fruit f = Factory.getFruitInstance(p.getProperty(code)) ;
if(f!=null)
{
f.grow() ;
f.pick() ;
}
else
{
System.out.println("没有发现这个类型。") ;
}
}
};
lxh.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>MLDN --> LXH</comment>
<entry key="b">org.lxh.demo.Banana</entry>
<entry key="a">org.lxh.demo.Apple</entry>
<entry key="o">org.lxh.demo.Orange</entry>
<entry key="c">org.lxh.demo.Cherry</entry>
<entry key="d">org.lxh.demo.DD</entry>
</properties>
发表评论
-
ddddddddddddddd
2009-04-07 22:56 0dddddddddddddd -
笔记**************
2007-10-31 21:26 1292环境变量C:\jdk1.5.0_04 JDK安装路径 JA ... -
thinkinjava一系列项目
2007-08-15 13:26 1124本章包含了一系列项目 ... -
附录C Java编程规则
2007-08-15 13:25 951本附录包含了大量有用 ... -
附录A 使用非JAVA代码
2007-08-15 13:24 1296附录A 使用非JAVA代码 JA ... -
对比C++和Java
2007-08-15 13:20 908附录B 对比C++和Java “作为一名C++程序员,我们早 ... -
JSP笔记
2007-08-08 18:16 2115Tomcat下建立虚拟目录 例: 建立目录 d ... -
JSP & Servlet解惑^_^
2007-08-07 19:03 1550钻进去几天,虽然网上找过问题的答案,但到现在看到Marty ... -
java笔记十
2007-08-03 21:03 693java 代码 pa ... -
java笔记九
2007-08-02 12:45 961java 代码 /* AWT(A ... -
java笔记八
2007-08-01 19:02 949对象序列化 将对象转换为字节流保存起来,并在日后还原这个对象, ... -
java笔记七
2007-08-01 16:16 1057java 代码 /*RandomAcce ... -
java笔记六
2007-07-31 19:07 888流(Stream)是字节的源或目的。 两种基本的流是:输入流( ... -
java笔记五
2007-07-31 08:52 826ArrayList和LinkedList的比较 ArrayLi ... -
java笔记四
2007-07-31 08:51 919程序是计算机指令的集合,它以文件的形式存储在磁盘上。 进程:是 ... -
java笔记三
2007-07-28 18:27 866java 代码 /*java迭代器Iterat ... -
eclipse快捷键
2007-07-28 13:07 789本文档从Eclipse软件上整 ... -
java笔记二
2007-07-28 13:06 794java 代码 //*孙鑫教程笔记。接口中run ... -
java笔记一
2007-07-27 17:15 807java 代码 //: notes about ... -
在eclipse + MyEclipse+tomcat下配置建立J2EE工程环境
2007-07-26 19:13 4350在eclipse + MyEclipse+tomcat下配置 ...
相关推荐
5. Qt工厂模式例子 6. 简单工厂模式 部分源码实例: // 奔驰工厂 class BenzFactory : public AFactory { public: ICar* CreateCar() { return new BenzCar(); } }; // 宝马工厂 class BmwFactory : public A...
java工厂模式一个简单的工厂模式例子工厂模式简单代码案例,仅供参考。java工厂模式一个简单的工厂模式例子工厂模式简单代码案例,仅供参考。java工厂模式一个简单的工厂模式例子工厂模式简单代码案例,仅供参考。...
通过C++实现了简单工厂模式、工厂模式、抽象工厂模式三大设计模式的经典案例。
此实例专门是针对初学c#的程序员 有利于更进一步了解工厂模式是怎样创建对象的
工厂模式解读----2016最新手机特性
设计模式--工厂模式java例子
设计模式之简单工厂模式案例
Java 简单工厂模式例子,Eclipse直接引入就可以使用
工厂模式例子java代码
1.简单工厂模式(simple factory)2.工厂方法模式(factory mathoud)3.抽象工厂模式(abstract factory)
设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代 码可靠性。...本资源使用C++实现了23种设计模式的经典案例。
这是一个用C++写的简单工厂模式的例子,以创建不同子公司为例介绍了应该如何构造简单工厂模式
针对几种经典软件设计模式:模板方法模式 外观模式 代理模式 装饰器模式 桥模式 工厂方法模式 组合模式等给出了简单易懂的讲解,透彻明了。很好的学习资料哦,是我平时学习时做的笔记外加自己的理解,很不错的……
php 设计模式 简单工厂模式
工厂模式的具体例子,很好的东西,想学习设计模式的可以下载了看看
根据工厂方法模式的理论,使用C#语言写的两个模式应用案例,有助于设计模式的理解和学以致用。
反射例子代码、简单工厂模式例子代码、工厂模式例子代码
三层架构+工厂模式(经典案例)带图,带说明 非常适合框架设计者,非常经典,里面关于每一层就详细的说明。
JAVA 设计模式: 工厂模式 代理模式 迭代模式 责任链模式 源码
C++设计模式例程,工厂模式例子,环境是VS2019打开即可运行 工厂模式也是平时我们编程用的比较多的一种行为设计模式,它提供了一种创建对象的最佳方式。工厂模式提供了一种创建对象的方式,而无需指定要创建的具体...