设计模式学习札记(一):创建型模式之简单工厂模式
模型图
模型特点
优点:在简单工厂模式中,客户端不再负责对象的创建,而是把这个责任丢给了具体的工厂类,客户端对对象的调用,从而明确了各个类的职责。
缺点:由于简单工厂模式使用静态方法创建对象,这就导致静态方法无法被继承。另一方面,这个工厂类负责所有对象的创建,这会导致虽然具体产品的不断增多,可能客户端对于某些产品的创建方式会有不同的要求,这样的话,就要不断的修改工厂类,增加相应的判断逻辑,不利于后期的维护。
示例代码
【抽象产品类】:
// Product.java
package com.gongdan.sampleFactory;
public interface Product{
void operation1();
}
【具体产品类】:
// Product1.java
package com.gongdan.sampleFactory;
public class Product1 implements Product{
public void operation1(){
}
}
//Product2.java
package com.gongdan.sampleFactory;
public class Product2 implements Product{
public void operation1(){
}
}
【工厂类】:
//SampleFactory.java
package com.gongdan.sampleFactory;
public class SampleFactory{
/*根据参数创建不同的对象*/
public static Product createProduct(string productName){
if ("1".equals(productName))
return new Product1();
else if ("2".equals(productName))
return new Product2();
return null;
}
}