设计模式(二):工厂模式

111 阅读1分钟

介绍

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。

优点

  • 一个调用者想创建一个对象,只要知道其名称就可以了。
  • 扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以。
  • 屏蔽产品的具体实现,调用者只关心产品的接口。

缺点

  • 每次增加一个产品时,都需要增加一个具体类和对象实现工厂,增加了系统的复杂度。

应用

可扩展性高的场景

实现

关键代码:创建过程在其子类执行

interface Movie {
   void watch();
}
class Romance implements Movie {
 
   @Override
   public void watch() {
      System.out.println("watch Romance");
   }
}
class Fiction implements Movie {
 
   @Override
   public void watch() {
      System.out.println("watch Fiction");
   }
}
class MovieFactory {
    
   //获取电影类型的对象
   public Movie getMovie(String movieType){
      if(movieType == null){
         return null;
      }        
      if(movieType.equalsIgnoreCase("Romance")){
         return new Romance();
      } else if(movieType.equalsIgnoreCase("Fiction")){
         return new Fiction();
      }
      return null;
   }
}
class FactoryDemo {
  
    public static void main(String[] args) {
       MovieFactory movieFactory = new MovieFactory();

       Movie movie1 = movieFactory.getMovie("Romance");

       movie1.watch();
  
    }
}

结果:

watch Romance