在设计模式中,工厂模式十分的常见 在设计模式中,工厂模式十分的常见,举个简单的例子,说明什么是工厂模式,假如我们需要修建一座房子出现 ,举个简单的例子,说明什么是工厂模式,假如我们需要修建一座房子需要砖块,如果我们够勤快,我们自己生产砖块,然后使用其修房子,但是想一想,我们真正的目的是修房子,而不是去生产砖块,所以,生产砖块,完全可以交给砖场去做,我们只需要去买砖,用砖就可以了,这就是工厂模式的现实原型
工厂模式属于创建型模式,创建型模式有如下几类:
简单工厂模式(Simple Factory)
工厂模式(Factory)
抽象工厂模式(Abstract Factory)
单例模式(Singleton)
原型模式(Prototype)
创建者模式(Builder)
在这一节主要讲解简单工厂模式,简单工厂的示例代码如下
//抽象产品类
//具体产品实现类
//工厂类
简单的说,简单工厂模式设计比较简单,如果在代码中出现new对象的情况,就可以考虑使用简单工厂模式了
简单工厂模式的优点是:客户端不再负责new对象了,而是把生产的责任丢给了具体的工厂类,客户端只负责调用对象即可
简单工厂模式的缺点是:工厂类负责创建所有的对象,会导致产品的不断增多,代码量的庞大不利于维护,如果客户端对某些产品的创建方式有不同要求的话,就要不断的去修改工厂类,增加相应的逻辑判断
工厂模式属于创建型模式,创建型模式有如下几类:
简单工厂模式(Simple Factory)
工厂模式(Factory)
抽象工厂模式(Abstract Factory)
单例模式(Singleton)
原型模式(Prototype)
创建者模式(Builder)
在这一节主要讲解简单工厂模式,简单工厂的示例代码如下
//抽象产品类
package com.wepull.simplefactory;
public interface Product {
public void opera();
}
//具体产品实现类
package com.wepull.simplefactory;
//具体产品类1
public class Product1 implements Product {
public void opera() {
// TODO Auto-generated method stub
}
}
package com.wepull.simplefactory;
//具体产品类2
public class Product2 implements Product {
public void opera() {
// TODO Auto-generated method stub
}
}
//工厂类
package com.wepull.simplefactory;
public class SimpleFactory {
// 根据参数不同创建不同的产品
public static Product createProduct(String productName){
if("1".equals(productName)){
return new Product1();
}else if("2".equals(productName)){
return new Product2();
}
return null;
}
}
简单的说,简单工厂模式设计比较简单,如果在代码中出现new对象的情况,就可以考虑使用简单工厂模式了
简单工厂模式的优点是:客户端不再负责new对象了,而是把生产的责任丢给了具体的工厂类,客户端只负责调用对象即可
简单工厂模式的缺点是:工厂类负责创建所有的对象,会导致产品的不断增多,代码量的庞大不利于维护,如果客户端对某些产品的创建方式有不同要求的话,就要不断的去修改工厂类,增加相应的逻辑判断