您的位置:首页 > 其它

设计模式--创建型--简单工厂

2012-11-19 10:36 501 查看

一、简单工厂模式简介(Bref Introduction)

简单工厂模式(Simple
Factory Pattern)的优点是,工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖

二、解决的问题(What To Solve)

客户实例化对象时不需要关心该对象是由哪个子类实例化的。

三、简单工厂模式分析(Analysis)

1、简单工厂模式结构



Product:定义客户所需要的功能接口

ConcreteProductA、[b]ConcreteProductB:具体实现[b]Product的实现类,可能会有多个[/b][/b]

[b]Factory:工厂,选择适合的实现类来创建[b]Product接口对象[/b][/b]

[b]Client:客户端,通过Factory来获取[b]Product接口对象,然后面向Product接口编程[/b][/b]



四.实例分析(Example)

1、接口Product,及其具体实现类ConcreteProductA、ConcreteProductB

public interface Product {
public void operation(String s);
}
public class ConcreteProductA implements Product {
public void operation(String s){
System.out.println("===================ConcreteProductA Begin=====================");
System.out.println("==============="+s+"=================");
System.out.println("====================ConcreteProductA End======================");
}
}


public class ConcreteProductB implements Product {
public void operation(String s){
System.out.println("===================ConcreteProductB Begin=====================");
System.out.println("==============="+s+"=================");
System.out.println("====================ConcreteProductB End======================");
}
}


2、简单工厂类Factory

public class Factory {

/**
* 根据condition创建具体的product
* @param condition
* @return
*/
public static Product createProduct(int condition){
Product product = null;
if(condition == 1){
product = new ConcreteProductA();
}else if(condition==2){
product = new ConcreteProductB();
}
return product;
}
}


[b]3、客户端代码
[/b]

public class Client {

public static void main(String[] args) {
Product product  = null;
product = Factory.createProduct(1);
product.operation("正在调用工厂方法");

product = Factory.createProduct(2);
product.operation("正在调用工厂方法");
}
}

运行结果:

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