设计模式之简单工厂模式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"));
}
}
简单工厂模式的构成
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"));
}
}
相关文章推荐
- java设计模式之简单工厂模式
- java设计模式---简单工厂模式篇
- Java研究之学习设计模式-简单工厂模式详解
- 设计模式-简单工厂模式JAVA
- java几种常用设计模式简单示例
- JAVA--简单工厂模式,工厂方法模式--设计模式一
- Java设计模式2:简单工厂模式
- 设计模式---状态模式Java示例实现
- Java设计模式--简单工厂模式【Simple Factory Pattern】
- Java 23种设计模式之简单工厂模式详解
- JAVA设计模式之 简单工厂模式【Simple Factory Pattern】
- java 常用十种设计模式示例归纳 | 已打包请带走
- java设计模式示例
- java设计模式——简单工厂模式
- java适配器设计模式源码示例
- java 常用十种设计模式示例归纳 | 已打包请带走
- (三)简单工厂模式详解 分类: java 设计模式
- java设计模式示例
- java设计模式之简单工厂模式简述
- 设计模式_改进策略模式_策略模式与简单工厂模式结合(Java)