您的位置:首页 > 编程语言 > Java开发

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

2013-04-08 19:43 387 查看
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

简单工厂模式的构成

1、工厂类角色:担任这个角色的是简单工厂模式的核心,含有与应用紧密相关的商业逻辑。工厂类在客户端的直接调用下创建产品对象,他往往由一个具体类实现。

2、抽象产品角色:担任这个角色的类是简单工厂模式所创建的对象的父类,或他们共同拥有的接口。抽象产品角色可以用一个接口或者抽象类实现。

3、具体产品角色:简单工厂模式所创建的任何对象都是这个角色的实例,具体产品角色由一个具体类实现。

工厂类角色:PersonFactory.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.java

package 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.java

package 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 {

public static void main(String[] args) {

// TODO Auto-generated method
stub

//采用工厂模式后,我们不在关心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"));

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: