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

设计方式之简单工厂模式java示例

2013-04-21 
设计模式之简单工厂模式java示例package com.test.simplefactorypublic class PersonFactory {public Per

设计模式之简单工厂模式java示例
package com.test.simplefactory;public class PersonFactory {public Person getPerson(String name){ if("america".equals(name)) { return new America(); } else if ("chinese".equals(name)) { return new Chinese(); } else { return null; }}}?

抽象产品角色:person.java

package com.test.simplefactory;public interface Person {public String sayHello(String name);public String sayGoodbye(String name);}具体产品角色:Chinese.javapackage com.test.simplefactory;public class Chinese implements Person {public String sayGoodbye(String name) {  // TODO Auto-generated method stub  return "再见,"+name;}public String sayHello(String name) {  // TODO Auto-generated method stub  return "你好,"+name;}}America.javapackage com.test.simplefactory;public class America implements Person {public String sayGoodbye(String name) {  // TODO Auto-generated method stub  return "good bye,"+name;}public String sayHello(String name) {  // TODO Auto-generated method stub  return "hello,"+name;}}
?

测试客户端:Client.java
package com.test.simplefactory;public class Client {/**  * @param args  *//**  * 简单工厂模式的构成  * 1、工厂类角色:担任这个角色的是简单工厂模式的核心,含有与应用紧密相关的商业逻辑。  *   工厂类在客户端的直接调用下创建产品对象,他往往由一个具体类实现。  * 2、抽象产品角色:担任这个角色的类是简单工厂模式所创建的对象的父类,或他们共同拥有的接口。抽象产品角色可以用一个接口或者抽象类实现。  * 3、简单工厂模式所创建的任何对象都是这个角色的实例,具体产品角色由一个具体类实现。  */public static void main(String[] args) {  // TODO Auto-generated method stub/*  Person chinese = new Chinese();    System.out.println(chinese.sayHello("张三"));  System.out.println(chinese.sayGoodbye("张三"));    Person america= new America();  System.out.println(america.sayHello("Tom"));  System.out.println(america.sayGoodbye("Tom"));*/    //采用工厂模式后,我们不在关心Chinese类和America类,只需要传入相应参数即可。    PersonFactory factory = new PersonFactory();  Person chinese = factory.getPerson("chinese");//工厂类负责生成一个具体对象  System.out.println(chinese.sayHello("张三"));  System.out.println(chinese.sayGoodbye("张三"));    Person america = factory.getPerson("america");//工厂类负责生成一个具体对象  System.out.println(america.sayHello("Tom"));  System.out.println(america.sayGoodbye("Tom"));  }}
?

热点排行