zoukankan      html  css  js  c++  java
  • 02 工厂模式

    工厂模式:

    最典型特征:调用一个函数返回一个类的实例。这个函数可以直接调用如fn() 或者类的静态方法。 Factory.create() create就是Factory的静态方法。

     class Plant{
      constructor(name){
        this.name=name
      }
      grow(){
        console.log('grow');
      }
    }
    
    class Apple extends Plant{
      constructor(name,taste){
        super(name)
        this.taste =taste
      }
    
    }
    const apple1=new Apple('apple1','sweet')
    console.log(apple1);

    简单工厂模式

    class Plant{
      constructor(name,taste){
        this.name=name;
        this.taste=taste;
      }
    }
    class Apple extends Plant{
     
    }
    class Orange extends Plant{
     
    }
    // 工厂模式典型特征:调用一个函数,返回一个类的实例对象。
    /**
     简单工厂模式
     */
    class Factory{
       static create(type){
        if(type==='apple'){
          return new Apple('苹果','甜的')
        }
        if(type==='orange'){
          return new Orange('橘子','酸的')
        }
        else  throw Error('没有这个水果')
      }
    }
    // 调用一个类的静态方法,返回一个类的实例对象
    const apple=Factory.create('apple')
    console.log(apple);
    View Code

    举例子

    简单工厂模式违背了 2.开放封闭原则:软件对扩展开放,对修改封闭。大白话:增强新需求,扩展新代码,而不是修改已有代码

     

    工厂方法模式

    核心的工厂类不在负责所有产品的创建,而是将具体的产品创建工作交给子类完成

  • 相关阅读:
    网页的尺寸
    前端大杂烩总结
    vscode 2.0 配置
    关于node 版本的一个奇葩的问题 :HPE_UNEXPECTED_CONTENT_LENGTH error #3103
    ADO.NET 增删改查的基本用法
    面向对象 类库 委托
    三大特性:封装,继承,多态
    面向对象 抽象类 多态
    SQL数据库基础(九)
    SQL数据库基础(八)
  • 原文地址:https://www.cnblogs.com/xiaoliziaaa/p/13754504.html
Copyright © 2011-2022 走看看