首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

工场模式-解析

2013-03-19 
工厂模式-解析1、工厂模式定义工厂模式是相当于应用程序中甲组件需要乙组件协助时,并不是直接创建乙组件的

工厂模式-解析
1、工厂模式定义

      工厂模式是相当于应用程序中甲组件需要乙组件协助时,并不是直接创建乙组件的实例对象,而是通过乙组件的工厂——该工厂可以生成某一类型组件的实例对象。

2、工厂模式事例:

Human是一个接口:

package com.centit.service;public interface Human {public void eat();public void ask();}


 American和Chinese是Human实现类

package com.centit.serviceImpl;import com.centit.service.Human;public class American implements Human {@Overridepublic void ask() {// TODO Auto-generated method stubSystem.out.println("我是美国人,但是我喜欢中国");}@Overridepublic void eat() {// TODO Auto-generated method stubSystem.out.println("我是美国人, 但我喜欢中国菜");}}


 

package com.centit.serviceImpl;import com.centit.service.Human;import com.centit.service.Language;public class Chinese implements Human {@Overridepublic void ask() {// TODO Auto-generated method stubSystem.out.println("我是中国人,说普通话");}@Overridepublic void eat() {// TODO Auto-generated method stubSystem.out.println("我是中国人,只吃中国菜");}}


下面的sessionFactory是Human接口工厂

package com.centit.SessionFactory;import com.centit.service.Human;import com.centit.serviceImpl.American;import com.centit.serviceImpl.Chinese;public class SessionFactory {
//这就是生成实例对象的工厂public Human getHuman(String name){if("chinese".equals(name)){return new Chinese();}else if("american".equals(name)){return new American();}else{throw new IllegalArgumentException("日本人去死吧,参数不正确");}}}


下面的Test是一个测试类

package com.centit.test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.FileSystemXmlApplicationContext;import com.centit.SessionFactory.SessionFactory;import com.centit.service.Human;public class Test {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println("");Human human=null;
//需要的Human事例的时候是通过工厂生成human=new SessionFactory().getHuman("chinese");human.ask();human.eat();
//需要的Human事例的时候是通过工厂生成human=new SessionFactory().getHuman("american");System.out.println("");human.ask();human.eat();human=new SessionFactory().getHuman("japanese");human.ask();human.eat();}}

这就是一个工厂模式的java项目解析。

 

热点排行