简单工厂模式(Simple Factory Pattern):又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。
在简单工厂模式中,可以根据自变量的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。
类图如图所示:
下面还是通过一个例子来说明吧:
使用简单工厂模式设计一个可以创建不同几何形状(Shape)的绘图工具类,如可创建圆形(Circle)、方形(Rectangle)和三角形(Triangle) 对象。
每个几何图形都要有绘制draw()和擦除erase()两个方法,要求在绘制不支持的几何图形时,提示一个UnsupportedShapeException,绘制类图并编程实现。
shape类:
|
实现类:
|
|
Triange类的实现一样。不贴代码了。
工厂类:
package com.i3zhai; |
再写个解析配置文件XML的工具类:
package com.i3zhai.util; |
配置文件
|
在上面typename里面输入要构造的图形名称就可以了。
这样就实现了不改源代码构造不同的图形产品,满足OCP。