zoukankan      html  css  js  c++  java
  • 工厂模式简介(一)

    工厂模式是23中设计模式中的一种,它属于创建型设计模式,可细分为三种:分别是简单工厂模式,工厂方法模式,抽象工厂模式。
    一、简单工厂模式
    简单工厂模式属于类的创建型模式,又叫静态工厂方法模式。通过专门定义一个工厂类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。
    举例说明:
    现在有个工厂,可以生产自行车和摩托车,通过外界的订单来生产产品。
    class FACTORY {
      Product(type) {
        var production;
        switch(type) {
          case 'bike' :
          production = new Bike();
          break;
          case 'moto' :
          production = new Moto();
          break;
        }
        return production
      }
    }
    class Bike {
      product() {
        console.log('生产自行车');
      }
    }
    class Moto {
      product() {
        console.log('生产摩托车车');
      }
    }
    let order = new ORDER();
    console.log('order',order.Product('bike).product());
    在上边代码中,工厂类作为最核心存在,他包含了处理业务的逻辑,能够根据外界的条件去创建具体的类,也就是说能够根据订单内容去生产相关产品,无需关注自行车,摩托车是怎么生产的。但是简单虽然简单,当业务
    类型多的时候,会不断的向工厂类添加功能,把所有功能都集中到一个类上,足够多的时候这给类难以维护并且臃肿,这违反了开闭原则。
    二、工厂方法模式

    工厂方法模式是对简单工厂模式的稍微的改进,它定义一个用于创建对象的接口,让子类决定实例化哪一个类。针对上述问题,假如每次添加一种新的产品,都要去更改工厂内部,工厂方法模式就是将这个大厂拆分出各个小厂,每次添加新的产品让小厂去生产,大厂负责指挥就好了。

    class FACTORY {

      construct(){  

      }

    }

    class SONFACTORY extends FACTORY {

      Product(type) {
        var production;
        switch(type) {
          case 'bike' : 
          production = new Bike();
          break;
          case 'moto' :
          production = new Moto();
          break;
        }
        return production
      }

    }

    class Bike
      product() {
        console.log('生产自行车');
      }
    }
    class Moto{
      product() {
        console.log('生产摩托车车');
      }
    }

    与简单工厂模式相比,制造产品的工厂类不再 只有一个,而是每种具体产品类都对应一个生产它的具体工厂类。而这些具体工厂类的共同特征再被提取出来形成一个抽象产品类,这些具体产品类都继承自这个抽象产品类。每当有新的需求,增加一种继承在抽象工厂的具体工厂类,它符合开闭原则。

  • 相关阅读:
    MSDN Visual系列:在SharePoint开发环境中配置CAML语法的智能感知
    学习SharePoint你需要什么?
    MSDN Visual系列:用WSSv3中的SPGridView控件来显示数据
    关于DataFormWebPart中CreatedModifiedInfo信息的分开使用
    MSDN Visual系列:在WSSv3中编程方式激活单个文档库的审核功能
    MOSS 2007基础:部署自定义WebPart
    MSDN Visual系列:编程激活SharePoint网站集的审计功能
    升级SharePoint数据库到SQL Server 2005的一点心得
    一个集WF/WCF/Silverlight/SharePoint技术于一身的东西
    MSDN Visual系列:WSSv3之权限提升
  • 原文地址:https://www.cnblogs.com/zmyxixihaha/p/10532604.html
Copyright © 2011-2022 走看看