关闭

FACTORY模式在SPRING中的实现

315人阅读 评论(0) 收藏 举报

业务接口:

public   interface  Hello  {   
    
public   void  print();   
}
  

两个不同的BEAN实现:

public   class  TestBean  implements   Hello {         
        
public   void  print()  {   
        System.out.println(
" this is test " );   
    }
   
}
 

public   class  TestBean1  implements   Hello {       
    
public   void  print()  {   
        System.out.println(
" this is test1 " );   
    }
   
}
  


工厂类:

public   class  SimpleFactoryBean   {   
    
private  Hello testBean;  
    
private  Hello testBean1;   

    
public  Hello getTestBean()  {   
        
return  testBean;   
    }
   
  
    
public   void  setTestBean(Hello testBean)  {   
        
this .testBean  =  testBean;   
    }
   
  
    
public  Hello getTestBean1()  {   
        
return  testBean1;   
    }
   
  
    
public   void  setTestBean1(Hello testBean1)  {   
        
this .testBean1  =  testBean1;   
    }
   
  
    
public  Hello createBean( int  i) {   
         
if  (i == 1 return  testBean;   
         
if  (i == 2 return  testBean1;   
         
return   null ;   
     }
    
}
 

 
在SPRING中的配置文件:

< bean id = " factory "   class = " org.appfuse.dao.hibernate.SimpleFactoryBean " >   
    
< property name = " testBean "  ref = " testBean " />   
     
< property name = " testBean1 "  ref = " testBean1 " />     
</ bean >   
< bean id = " testBean "   class = " org.appfuse.dao.TestBean " />   
< bean id = " testBean1 "   class = " org.appfuse.dao.TestBean1 " />  

测试代码:

public   void  testBean()  throws  Exception  {   
      FactoryBean b
= (FactoryBean)ctx.getBean( " &simple " );   
     SimpleFactoryBean test;   
    Hello hello;   
    test
= (SimpleFactoryBean)ctx.getBean( " factory " );   
    hello
= test.createBean( 2 );   
    hello.print();        
}
  
以上代码可以实现根据参数的不同,返回不同的具体类,同时在你的代码里面可以完全不依赖于spring框架。这正是spring的优势所在。 
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:109935次
    • 积分:1432
    • 等级:
    • 排名:千里之外
    • 原创:6篇
    • 转载:116篇
    • 译文:0篇
    • 评论:18条
    最新评论