动力节点首页 全国咨询热线:400-8080-105

绑定手机号,登录
手机号

验证码

微信登录
手机号登录
手机号

验证码

30天自动登录
微信登录与注册
微信扫码登录与注册

扫码关注微信公众号完成登录与注册
手机号登录
首页 > 文章

Java简单工厂模式

03-29 14:19 447浏览
举报 T字号
  • 大字
  • 中字
  • 小字

由一个工厂对象决定创建出哪一种产品类的实例。

作用:简单工厂模式的核心是工厂类。这个类含有必要的逻辑判断,可以决定在什么时候创建出哪一个产品的实例。通过这种做法实现了对责任的分割(客户端可以免除直接创建对象的责任)

缺点:这个工厂类集中了所有的业务逻辑,当业务逻辑比较复杂时,一旦不能工作了,整个系统都将受到影响。并且简单工厂模式违背了开闭原则(对扩展的开放,对修改的关闭)

代码

//接口
public interface IProduct {  
    public void method();
}
//产品类A
public class ProductA implements IProduct{
    @Override
    public void method() {
        System.out.println("A方法");
    }
}
//产品类B
public class ProductB implements IProduct{
    @Override
    public void method() {
        System.out.println("B方法");
    }
}

工厂类(简单工厂模式的核心)

public class Factory {
   public static IProduct createtProduct(String productName) {
        if(productName==null) {
            //非空判断
            return null;
        }
        if(productName.equals("A")) {
            return new ProductA();
        }else if(productName.equals("B")) {
            return new ProductB();
        }else {
            return null;
        }
    }
}

测试类

public class Test01 {
    public static  void main(String args[]) {
        IProduct product1=Factory.createtProduct("A");
        product1.method();

        IProduct product2=Factory.createtProduct("B");
        product2.method();
    }
}

运行结果

总结:简单来说,就是多个实现了接口的多个产品类,以及生产产品对象的工厂类,工厂类通过传入的参数决定生产产品的种类。 

0人推荐
共同学习,写下你的评论
0条评论
我是码农
程序员我是码农

25篇文章贡献87343字

相关课程 更多>

作者相关文章更多>

推荐相关文章更多>

Java面试题及答案整理

代码小兵66904-21 20:01

6道经典算法面试题

杨晶珍05-12 16:39

简述Spring MVC的核心组件

代码小兵49806-11 16:26

SpringMVC 中的组件

代码小兵49806-11 16:28

Spring常见面试题

代码小兵92504-17 16:07

发评论

举报

0/150

取消