码迷,mamicode.com
首页 > 其他好文 > 详细

简单工厂模式与工厂方法模式

时间:2018-06-04 11:48:42      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:string   start   tar   factor   pre   参数   hpc   子类   create   

  • 简单工厂
    • 定义:简单工厂模式属于创建型模式,其又被称为静态工厂方法模式,这是由一个工厂对象决定创建出哪一种产品类的实例
    • 技术分享图片
    • 工厂类
      public class CamputerFactory {
      
          public static Computer createComputer1(String type) {
              Computer computer = null;
              switch (type){
                  case "Lenovo":
                      computer = new LenovoComputer();
                      break;
                  case "HP":
                      computer = new HPComputer();
                      break;
                      default:break;
              }
              return computer;
          }
      }
      
    • 客户端调用:
         @Test
          public void testSimpleFactory(){
              CamputerFactory.createComputer1("Lenovo").start();
          }
      
    • 抽象产品:
      public interface Computer {
          void start();
      }
      
    • 具体产品:
      public class HPComputer implements Computer {
      
          private static final String  TAG = "HPComputer";
      
          @Override
          public void start() {
              System.out.print(TAG+" work===========");
          }
      }
      
    • 使用场景:

      • 工厂类负责创建的对象比较少

      • 客户只需要知道传入工厂类的参数,而无需关心创建对象的逻辑。

      • 优点:使用户根据参数获得对应的类实例,避免了直接实例化类,降低了耦合性

      • 缺点:可实例化的类型在编译期间已经被确定。如果增加新类型,则需要修改工厂,这违背了开放封闭原则。简单工厂需要知道所有生成的类型 ,当其子类过多或者子类层次过多时不宜使用

  • 工厂方法
    • 定义:定义了一个用于创建对象的接口,让子类决定实例化哪个类。工厂方法使一个类的实例化延迟到其子类。工厂方法使一个类的实例化延迟到子类
    • 有如下角色:
      • 抽象工厂类
      • 具体工厂类
      • 抽象产品类
      • 具体产品类

技术分享图片

简单工厂模式与工厂方法模式

标签:string   start   tar   factor   pre   参数   hpc   子类   create   

原文地址:https://www.cnblogs.com/endian11/p/9131920.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!