zoukankan      html  css  js  c++  java
  • JavaScript设计模式样例六 —— 抽象工厂模式

    抽象工厂模式(Abstract Factory Pattern)

    定义:抽象工厂模式提供了一种方式,可以将一组具有同一主题的单独的工厂封装起来。或者说,是其他工厂的工厂。
    目的:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
    场景:系统的产品有多于一个的产品族,而系统只消费其中某一族的产品。

    class User {
    constructor (type) {
    if (new.target === User) {
    throw new Error('抽象类不能实例化!')
    }
    this.type = type
    }
    }

    class UserOfWechat extends User {
    constructor (name) {
    super('wechat')
    this.name = name
    this.viewPage = ['首页', '通讯录', '发现页']
    }
    }

    class UserOfQQ extends User {
    constructor (name) {
    super('qq')
    this.name = name
    this.viewPage = ['首页', '通讯录', '发现页']
    }
    }

    function getUser (type) {
    switch (type) {
    case 'wechat':
    return UserOfWechat
    break
    case 'qq':
    return UserOfQQ
    break
    default:
    throw new Error('参数错误')
    break
    }
    }

    let WechatUserClass = getUser('wechat')
    let QQUserClass = getUser('qq')

    let wechatUser = new WechatUserClass('卡卡罗特')
    let qqUser = new QQUserClass('贝吉塔')

    Git地址:https://github.com/skillnull/Design-Mode-Example

  • 相关阅读:
    产品设计理应遵循哪些原则?
    产品经理必读的九步法
    exec
    Class convert
    Connecting method
    ASP.NET读写操作
    Encrypt Decrypt
    EventHandler, EventArgs
    Convert using code
    Dictionary List
  • 原文地址:https://www.cnblogs.com/Man-Dream-Necessary/p/12368565.html
Copyright © 2011-2022 走看看