工厂模式

  工厂模式是一种创建模式,因为此模式提供了更好的方法来创建对象。
  在工厂模式中,我们创建对象而不将创建逻辑暴露给客户端,增强了代码的隐蔽性。例如需要画出不同的颜色红、绿、蓝等,传入不同的参数实现不同颜色的绘制。

  • 定义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()!
全部评论

相关推荐

菜菜咪:1. 可以使用简历网站的模版,美观度会更好一点 2. 邮箱可以重新申请一个,或者用qq邮箱的别名,部分hr可能会不喜欢数字邮箱 3. 项目经历最好分点描述,类似的项目很多,可以参考一下别人怎么写的 4. 自我评价可加可不加,技术岗更看重技术。最后,加油,优秀士兵
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务