工厂模式 之 简单工厂

  工厂模式的作用在于将创建对象的过程封装到一个类中完成,减少在客户端的耦合程度。 工厂模式有几种实现的形式,今天从最简单的一种实现入手,简单工厂模式(静态工厂模式)。简单工厂模式也称为静态工厂模式,就是因为在整个工厂类中,只有一个静态的工厂方法用于创建实例对象。

  简单工厂模式中一共包含了三个角色类型: 工厂角色,抽象产品角色,具体产品角色。

  •   工厂类角色: 担任这个角色的是工厂方法模式的核心,含有与应用紧密相关的逻辑
  •   抽象产品角色: 担任这个角色的类是工厂方法模式所创建的对象的超类
  •   具体产品角色: 实际返回给客户端的产品对象

 

// 工厂类角色


public class SimpleFactory(){

   /* 静态工厂方法 */


   public static Produce factory(String type){


        // 根据不同的类型,创建不同的产品对象


        if("A".equals(type)){


               return new ProduceA();


        }else  if("B".equals(type)){


               return new ProduceB();


        }else  if("C".equals(type)){


               return new ProduceB();


        }


   }


}

 

 

// 抽象产品类


public interface Produce{

      public void doSome();


}
 

 

// 具体产品类

public Class ProduceA implement Produce{
 
      public void doSome(){
             // do something for produceA;
      }
}

public Class ProduceB implement Produce{
 
      public void doSome(){
             // do something for produceB;
      }
}

public Class ProduceC implement Produce{
 
      public void doSome(){
             // do something for produceC;
      }
}


 

 

   简单工厂模式的优点与缺点

 

    简单工厂模式的优点在于这个类中含有了必要的判断逻辑,可以决定什么时候创建哪个产品类返回给客户,而客户端仅负责对产品类的消费行为既可。

    但也因为工厂方法中存在了必要的判断逻辑,为简单工厂模式带来了不少的缺点。

  1. 这个工厂类集合了所有产品的判断逻辑,让这个类成为了一个无所不知的全能类,让这个类拥有了太多的责任,如果这个类不能工作时,将会带来很大的影响。
  2. 类中包含了必要的判断逻辑,如果添加了产品类,那么必然导致工厂方法的修改。而这种行为,恰恰违反了“开-闭”原则,对修改的开打,必然会带来很大的问题。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值