工厂设计模式
2016-07-18 20:03
337 查看
工厂设计模式:
** 吃苹果
读取属性文件的工厂设计模式:
fruit.properties属性文件中的内容:
apple=com.neu.Apple
orange=com.neu.OrangeFactoryDemo02类:
package com.neu ;
import java.util.Properties ;
import java.io.File ;
import java.io.FileOutputStream ;
import java.io.FileInputStream ;
interface Fruit{
public void eat() ; // 吃水果
}
class Apple implements Fruit{
public void eat(){ // 覆写eat()方法
System.out.println("** 吃苹果");
}
};
class Orange implements Fruit{
public void eat(){
System.out.println("** 吃橘子") ;
}
};
class Init{
public static Properties getPro(){
Properties pro = new Properties() ;
File f = new File("d:\\fruit.properties") ; // 找到属性文件
try{
if(f.exists()){ // 文件存在
pro.load(new FileInputStream(f)) ; // 读取属性
}else{
pro.setProperty("apple","com.neu.Apple") ;
pro.setProperty("orange","com.neu.Orange") ;
pro.store(new FileOutputStream(f),"FRUIT CLASS") ;
}
}catch(Exception e){}
return pro ;
}
};
class Factory{
public static Fruit getInstance(String className){
Fruit fruit = null ;
try{
fruit = (Fruit)Class.forName(className).newInstance() ;
}catch(Exception e){
e.printStackTrace() ;
}
return fruit ;
}
};
public class FactoryDemo02{
public static void main(String args[]){
Properties pro = Init.getPro() ;
Fruit f = Factory.getInstance(pro.getProperty("apple")) ;
if(f!=null){
f.eat() ;
}
}
};运行结果:
** 吃苹果
package com.neu ; interface Fruit{ public void eat() ; // 吃水果 } class Apple implements Fruit{ public void eat(){ // 覆写eat()方法 System.out.println("** 吃苹果"); } }; class Orange implements Fruit{ public void eat(){ System.out.println("** 吃橘子") ; } }; class Factory{ public static Fruit getInstance(String className){ Fruit fruit = null ; try{ fruit = (Fruit)Class.forName(className).newInstance() ; }catch(Exception e){ e.printStackTrace() ; } return fruit ; } }; public class FactoryDemo01{ public static void main(String args[]){ Fruit f = Factory.getInstance("com.neu.Apple") ; if(f!=null){ f.eat() ; } } };运行结果:
** 吃苹果
读取属性文件的工厂设计模式:
fruit.properties属性文件中的内容:
apple=com.neu.Apple
orange=com.neu.OrangeFactoryDemo02类:
package com.neu ;
import java.util.Properties ;
import java.io.File ;
import java.io.FileOutputStream ;
import java.io.FileInputStream ;
interface Fruit{
public void eat() ; // 吃水果
}
class Apple implements Fruit{
public void eat(){ // 覆写eat()方法
System.out.println("** 吃苹果");
}
};
class Orange implements Fruit{
public void eat(){
System.out.println("** 吃橘子") ;
}
};
class Init{
public static Properties getPro(){
Properties pro = new Properties() ;
File f = new File("d:\\fruit.properties") ; // 找到属性文件
try{
if(f.exists()){ // 文件存在
pro.load(new FileInputStream(f)) ; // 读取属性
}else{
pro.setProperty("apple","com.neu.Apple") ;
pro.setProperty("orange","com.neu.Orange") ;
pro.store(new FileOutputStream(f),"FRUIT CLASS") ;
}
}catch(Exception e){}
return pro ;
}
};
class Factory{
public static Fruit getInstance(String className){
Fruit fruit = null ;
try{
fruit = (Fruit)Class.forName(className).newInstance() ;
}catch(Exception e){
e.printStackTrace() ;
}
return fruit ;
}
};
public class FactoryDemo02{
public static void main(String args[]){
Properties pro = Init.getPro() ;
Fruit f = Factory.getInstance(pro.getProperty("apple")) ;
if(f!=null){
f.eat() ;
}
}
};运行结果:
** 吃苹果
相关文章推荐
- PHP设计模式 工厂设计模式
- 接口工具类
- Java设计模式之工厂设计模式
- 随堂笔记160315工厂和代理模式
- JAVA常用设计模式
- 设计模式的概述与工厂设计模式
- Java设计模式—工厂设计模式
- 工厂设计模式
- 6、业务隔离(工厂设计模式)
- 工厂设计模式
- 最简单的Java工厂设计模式样例
- Java基础回顾 : 反射机制相关知识
- 《黑马程序员》 工厂设计模式深入分析
- [零基础学JAVA]Java SE应用部分-36.反射机制与工厂设计模式 推荐
- 工厂设计模式的探讨——iOS类簇的应用分析
- 工厂设计模式 - 数据存储的特有方式
- 设计模式之5 多方法的工厂模式
- 工厂设计模式
- 工厂设计模式
- Java接口 详解(二)