首页 > 其他分享 >复杂工厂模式

复杂工厂模式

时间:2023-08-21 11:35:36浏览次数:35  
标签:function name 复杂 子类 模式 工厂 Sup var prototype



目录

前言

导语

代码部分


前言

我是歌谣 歌谣的意志是永恒的 放弃很容易 但是坚持一定很酷

导语

复杂工厂模式

复杂工厂模式_ecmascript

编辑

代码部分

``` //第一步 定义自行车的构造函数 两个属性 一个name和一个方法method var BicycleShop = function(name){ this.name = name; this.method = function(){ return this.name; } }; BicycleShop.prototype = { constructor: BicycleShop, /* * 买自行车这个方法 * @param {model} 自行车型号 */ sellBicycle: function(model){ var bicycle = this.createBicycle(model); // 执行A业务逻辑 bicycle.A();
// 执行B业务逻辑
        bicycle.B();

        return bicycle;
    },
    createBicycle: function(model){
        throw new Error("父类是抽象类不能直接调用,需要子类重写该方法");
    }
};
// 实现原型继承  Sub表示子类,Sup表示超类
function extend(Sub,Sup) {

    // 首先定义一个空函数
    var F = function(){};

    // 设置空函数的原型为超类的原型
    F.prototype = Sup.prototype; 

    // 实例化空函数,并把超类原型引用传递给子类
    Sub.prototype = new F();

    // 重置子类原型的构造器为子类自身
    Sub.prototype.constructor = Sub;

    // 在子类中保存超类的原型,避免子类与超类耦合
    Sub.sup = Sup.prototype;

    if(Sup.prototype.constructor === Object.prototype.constructor) {
        // 检测超类原型的构造器是否为原型自身
        Sup.prototype.constructor = Sup;
    }
}
var BicycleChild = function(name){
    this.name = name;
// 继承构造函数父类中的属性和方法 BicycleShop.call(this,name); }; // 子类继承父类原型方法 extend(BicycleChild,BicycleShop); // BicycleChild 子类重写父类的方法 BicycleChild.prototype.createBicycle = function(){ var A = function(){ console.log("执行A业务操作"); 
 }; var B = function(){ console.log("执行B业务操作"); }; return { A: A, B: B } } var childClass = new BicycleChild("龙恩"); console.log(childClass); ```


总结

以上就是复杂工厂模式的理解


标签:function,name,复杂,子类,模式,工厂,Sup,var,prototype
From: https://blog.51cto.com/u_15460007/7173047

相关文章

  • 单体模式
    目录前言导语 代码部分总结前言我是歌谣歌谣的意志是永恒的放弃很容易但是坚持一定很酷导语单体模式 编辑 代码部分//单体模式varSingleton=function(name){this.name=name;};Singleton.prototype.getName=function(){returnthis.name;}//获取实例对象......
  • GPT用于复杂代码生产所需要满足的必要条件
    近年来,由于人工智能(AI)技术的迅猛发展,自然语言处理(NLP)领域取得了巨大突破。其中,基于预训练模型的生成式预测算法如GPT(GenerativePre-trainedTransformer)成为了广泛关注的焦点。在开发复杂代码的过程中,使用GPT进行代码生成已经成为一种引人瞩目的方法。本文将介绍GPT用于复杂代码......
  • Linux第四章(80X86保护模式及其编程)
    80X86保护模式及其编程80X86基础知识保护模式内存管理各种保护措施中断和异常处理任务管理保护模式编程的初始化一个简单的多任务内核4.180X86系统寄存器和系统指令为了协助处理执行初始化和控制系统操作,80X86提供了一个标志寄存器EFLAGS和几个系统寄存器,除了一些通......
  • 用正则实现复杂的查找和替换操作
    括号在正则中的功能就是用于分组。简单来理解就是,由多个元字符组成某个部分,应该被看成一个整体的时候,可以用括号括起来表示一个整体,这是括号的一个重要功能。其实用括号括起来还有另外一个作用,那就是“复用”。那分组和编号的规则是怎样的呢?其实很简单,用一句话来说就是,第几个括号就......
  • 拼多多海外版Temu商业模式分析
    拼多多于2022年9月在美国上线跨境平台Temu,发布仅2个月就成为北美下载量最高的应用程序,持续霸榜。这篇文章帮你快速了解下Temu:商业模式如何竞争情况如何有哪些优势和挑战后期业务如何发展一、Temu商业模式Temu平台拥有对商品的最终定价权,通过商品销售获取收入,商......
  • 论文解读:《ccctc结合因子介导的染色质环形成序列模式的深度学习》
    所属分类:SCI  生物期刊名: JOURNALOFCOMPUTATIONALBIOLOGY2021年影响因子/JCR分区:1.479/Q4文章:DeepLearningofSequencePatternsforCCCTC-BindingFactor-MediatedChromatinLoopFormation|JournalofComputationalBiology代码与数据集:GitHub-BioDataLearning/......
  • ubuntu无法进入系统,安全模式修复内容
    背景环境ubuntu22服务器只是重启了下,就进不去系统了,查看了下启动报错情况,报无法识别某一个盘的ext4格式,于是想起来,那就是前端时间加了个/etc/fstab的配置,应该是挂载盘的格式没写对步骤进advanced模式选恢复模式,按e编辑修改只读为可读写把rorecoverynomodesetdis_ucode......
  • 策略模式
    packagemainimport( "fmt")const( NoteType=0 TellphoneType=1)typeMessageNotifyinterface{ support(notifyTypeint)bool notify(contentstring)}typeNotestruct{}func(nNote)support(notifyTypeint)bool{ return......
  • cpu 3 模式
    参考blog按照CPU功能升级迭代的顺序,CPU的工作模式有实模式、保护模式、长模式。他们的主要区别是寻址方式和指令权限。下文以x86_64为例实模式实模式寄存器每个16bit大小,可以分成H和L两个。下图的右半边的寄存器。实模式寻址寻址范围8086cpu的地址总线有......
  • 设计模式分类
    博客地址:https://www.cnblogs.com/zylyehuo/......