23种设计模式--简单工厂模式

来源:互联网 发布:全屋定制行业分析知乎 编辑:程序博客网 时间:2024/06/07 17:33

简单工厂模式的角色:

 1.工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑。在java中它往往由一个具体类实现。

 2.抽象产品角色:它一般是具体产品继承的父类或者实现类的接口,在java中由接口或者抽象类来实现。

 3.具体产品角色:工厂类所创建的对象,就是此角色的实例。

//工厂类角色

public class Factory(){

           public static Sample creator(int witch){

                if(witch==1){return new SampleA() ;}

                else if(witch==2){return new SampleB();}

        } 

}

//抽象产品角色

public abstract class Sample(){} 

//具体产品角色

public class SampleA extends Sample(){}

public class SampleB extends Sample(){}


使用:

Sample A = Factory.ceartor(1);//instance of SampleA

 Sample B = Factory.ceartor(2);//instance of SampleB

 简单工厂模式的优点:客户类和工厂类分开,工厂类关注于产品的生产,客户端任何时候需要某产品,只需要向工厂请求即可,可以无需知道每次实例化那个类,消费者无需                                            进行修改,就可以接纳新产品。

简单工厂模式的缺点:当工厂新加入产品或修改时,工厂类也要做相应的修改。

修改(运用JAVA反射机制避免缺点)

/*

 * 工厂角色
 */

public class Factory {  
  public static Car creator(String className){
try {
Car car = (Car)Class.forName(className).newInstance();//className 是指class所在的包名+类名
return car;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
     }
}  


0 0
原创粉丝点击