美文网首页
PCL-几个设计模式

PCL-几个设计模式

作者: 死鱼 | 来源:发表于2020-01-10 14:33 被阅读0次

门面模式

就是utils,可以简单理解为工具类

// daoUtils
module.exports = {
    get : async (param)=>{ ... },
    set : async (param)=>{ ... },
    delete : async (param)=>{ ... },
    update : async (param)=>{ ... }
}

简单工厂模式

把一个类型的所有方法封装到一起,例如用户的所有增删改查行为,都存到一个模块里面。但是每次创建的时候,都要传一个用户类型进去加以区分。例如用户类型有手机用户、微信用户、微博用户等等。
例如:

// userModel
module.exports = {
    create : async (type, param)=>{ ... },
    update : async (type, param)=>{ ... }
}

工厂方法模式

简单工厂的方法不够抽象,用户类型都要写死到函数里面switch,而工厂模式则是直接把类型分支细化出去。工厂模式注重的是零件生产。
例如:

// userModel
module.exports = {
    qqUser : {
        functions ...
    },
    wechatUser : {
        functions ...
    },
    weiboUser : {
        function ... 
    }
}

构造模式

工厂模式把东西分支出去之后,仍然不够,构造模式是在创建的时候,就有定制化的属性区分,重点在于构造的过程,例如:

// userModel
module.expots = {
    qqUser : {
        create : async (param)=>{
            return userObject;
        },
        build : async (userObject, param)=>{
            // 写入属性参数
            userObject = setParam(userObject, param);
            return userObject
        }
    }
}

抽象工厂模式

例如如果正常情况下是这样

// userModel
module.exports = {
    qqUser : {
        normalUserFunctions ...
    }
}

假如现在有个需求,qq用户要区分成普通用户和会员用户。
这个时候,就要把qqUser里面的function区分开来。就要区分不同的用户类型,具体实例化不同的对象。

// userModel
module.exports = {
    qqUser : {
            normalMap : {},menberMap : {}, // 两个map注入到下面的创建过程中去
            functions .... 
    }
}

适配器模式

转接头,如果类中的方法无法使用或者不存在需要的接口方法,在原本的方法中,调用新的静态类的方法即可。例如原本qqUser类如下

// userModel
module.exports = {
    qqUser : function(){
        this.getUserName = ()=>{return this.name};
        return this;
    }
}

现在想在getUserName的时候log一下他的名字

// userModel

var qqUserUtils = {
    logName : (user)=>{console.log(user.name);}
}

module.exports = {
    qqUser : function(){
        this.getUserName = ()=>{
            qqUserUtils.logName(this);
            return this.name
        };
        return this;
    }
}

相关文章

  • PCL-几个设计模式

    门面模式 就是utils,可以简单理解为工具类 简单工厂模式 把一个类型的所有方法封装到一起,例如用户的所有增删改...

  • 设计模式中的那些工厂

    设计模式中的那些工厂 Intro 设计模式中有几个工厂模式,聊一聊这几个工厂模式的各自用法和使用示例,工厂模式包含...

  • 游戏开发中的MVVM设计模式

    mvc设计模式 说到mvvm设计模式不得不先说说mvc设计模式。mvc其实不是一个模式,而是几个模式结合使用的结果...

  • 工厂模式

    设计模式分为三大类,每个类别都包含几个设计模式: 创建型设计模式:侧重于对象的创建。 结构型设计模式:侧重于接口的...

  • 对象的有序行为(Behavioral Patterns)

    设计模式之行为模式 本文是设计模式系列的最后一篇。主要讲解设计模式中最后一种模式类型——行为模式。本文抽选了几个主...

  • Java面试 设计模式

    1.说说几个常见的设计模式(23种设计模式)? 设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模...

  • 图解Java设计模式之设计模式面试题

    图解Java设计模式之设计模式面试题 1.1 Java设计模式内容介绍 1.1.1 先看几个经典的面试题 1.1....

  • 设计模式几个原则

    单一职责 定义 一个类只负责一项职责 里氏替换 定义 引用基类的地方必须能透明地使用其子类的对象 核心思想 子类可...

  • 设计模式 - 几个原则

    What 设计模式(Design Pattern)是前人针对面向对象设计中反复出现的问题,总结出的设计套路。这个术...

  • 成为Java顶尖程序员,先过了下面问题!(十)

    十、设计模式与重构 1.你能举例几个常见的设计模式 1)单例模式 (Spring Bean)2)抽象工厂模式和工厂...

网友评论

      本文标题:PCL-几个设计模式

      本文链接:https://www.haomeiwen.com/subject/ofdpactx.html