工厂模式
工厂模式是一种创建模式,因为此模式提供了更好的方法来创建对象。
在工厂模式中,我们创建对象而不将创建逻辑暴露给客户端,增强了代码的隐蔽性。例如需要画出不同的颜色红、绿、蓝等,传入不同的参数实现不同颜色的绘制。
- 定义Color接口
public interface Color {
void draw();
}-实现不同颜色的绘制函数
public class Red implements Color {
@Override
public void draw() {
System.out.println("Into Red::draw()!");
}
}
public class Green implements Color {
@Override
public void draw() {
System.out.println("Into Green::draw()!");
}
}
public class Blue implements Color {
@Override
public void draw() {
System.out.println("Into Blue::draw()!");
}
}
- 工厂模式中的核心是通过getType()函数传入需要创建对象的参数类型,创建对应的对象。例如ColorFactroy类中,传入red参数,创建出Red对象。
public class ColorFactory {
public Color getShape(String shapeType) {
if (shapeType == null) return null;
if (shapeType.equalsIgnoreCase("red")) {
return new Red();
} else if (shapeType.equalsIgnoreCase("green")) {
return new Green();
}else if (shapeType.equalsIgnoreCase("blue")) {
return new Blue();
}
return null;
}
}- 测试
public static void main(String[] args) {
ColorFactory colorFactory = new ColorFactory();
Color red = colorFactory.getShape("red");
red.draw();
Color green = colorFactory.getShape("green");
green.draw();
Color blue = colorFactory.getShape("blue");
blue.draw();
}- 运行结果
Into Red::draw()! Into Green::draw()! Into Blue::draw()!
