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

来源:互联网 发布:qq社交软件 编辑:程序博客网 时间:2024/05/21 23:32
/** * 简单工厂 --- 静态工厂 * @author changsheng * */public class Factory {static public Product getProduct(){return new Product();}/** * 提供相应参数,然后由静态工厂方法来创建所需的产品既对象。 */static public Product getProduct(int type){Product p = null ;switch(type){case 1:p = new Product1();break;case 2:p = new Product2();break;case 3:p = new Product3();break;default :throw new InvalidateProductType("没有可用产品类型!");}return p;}}


 

public class Example {@SuppressWarnings("unused")public static void main(String[] args) throws ClassNotFoundException {String numStr = "123";int numInt = Integer.valueOf(numStr);/** * Integer.valueOf 简单工厂方法 * numInt 产品角色 * numStr 简单工厂参数 */Object obj = Class.forName("designpatterns.simplefactory.Product1");Class.forName("com.mysql.jdbc.Driver");}}


在什么情况下使用简单工厂模式呢?

1、产品个数确定,譬如高速公路上的交通工具,近几十年也只可能是货车和客车。

2、产品个数较少。



简单工厂缺点

简单工厂中的静态方法造成工厂不可能形成基于继承的等级结构。
如果产品有复杂的等级结构,有多少抽象接口或者抽象类(抽象产品接口),就需要多少个静态方法。
随着产品的增多,会造成简单工厂职能越来越多越来越复杂。


 

原创粉丝点击