JavaScript设计模式入坑

JavaScript设计模式入坑

介绍

设计模式编写易于维护的代码。

设计模式的开创者是一位土木工程师。Σ( ° △ °|||)︴,写代码就是盖房子。

模式

模式一种可以复用的解决方案。解决软件设计中遇到的问题。

设计模式的结构

如何编写一个新的设计模式
一个设计模式将会产生如下的内容

模式名称

对模式名称的书写

上下文大纲

适用的上下文

问题陈述

对需要解决的问题进行陈述

解决方案

对问题的解决

设计

模式的设计

实现

如何实现该设计模式

插图

UML图表示

示例

最小模式的形式实现

辅助条件

需要哪些模式支撑该模式,即依赖

关系

像哪些模式,仿照哪些模式设计出的

已知的用法

是否广泛的使用。
在哪里使用。
如何使用

讨论

带来什么好处

编写设计模式

没有和使用该模式的交互和明确的解决方案即不是好的设计模式。
一旦熟悉了模式的相关信息即可以使用现有的格式编写模式。

例如 Christian Heilmann https://christianheilmann.com/ 创建的Revedling Module模式

模式的实用有多少?

需要哪些实践?

设计模式对用户来说为透明的。

需要有说服力

反模式

如果一个设计模式应用于错误的上下文中,为反模式,即一种错误的
例如下方的反模式

  1. 全局上下文中定义变量,没有使用闭包用来包裹变量
  2. 使用定时器来执行代码,会触发eval的问题。
  3. 修改Object类的原型
  4. 以内联的形式使用js
  5. 应该使用document.createElement()创建节点,而不是使用document.write

设计模式的类别

设计模式是基于面向对象的语言。但是核心在于解决实际遇到的问题。

创建型设计模式

处理对象的创建。用来创建对象。
构造器模式,工厂模式,抽象模式,原型模式,单例模式,生成器模式

上方使用过工厂模式

结构型设计模式

找出不同对象之间建立关系的简单方法。
装饰着模式,外观模式,享元模式,适配器模式,代理模式。

行为设计模式

系统中的对象的通信
迭代器模式,中介者模式,观察者模式,访问者模式。

相关推荐

第三章:黑石谜影,能源帝国的起点

夜幕降临,山林间的寒意愈发浓重。微风吹拂,树梢摇曳,发出沙沙作响的声音,宛如无形的低语,回荡在群山之间。夜空幽深,星光被茂密的枝叶遮挡,森林里笼罩着一层神秘的阴影。李武踩着厚厚的落叶,紧握手中的长弓,屏息凝神地观察着前方的灌木丛。他的猎犬伏在地上,竖起耳朵,喉间发出低沉的呜咽声。猎犬的异常反应让他不由得心头一紧,手指悄然搭上弓弦,眼神锐利地扫视四周。“奇怪……”他皱起眉头,按理说这个时节正是野兽活...

mySoul 879

第二章 初次交锋

“站住!”一声断喝划破沉寂的山林,回音在苍茫雪地间飘荡,如同一把利刃撕裂夜幕。张远的脚步猛然一顿,目光如炬,迅速扫视四周,试图判断威胁的来源。他的呼吸在寒冷的空气中化作一缕缕白雾,缓缓散去。前方,一个身材魁梧的男子稳稳站立,手持长刀,刀锋在幽暗的天光下闪烁着寒芒,宛如一道致命的雷霆,映照着男子犀利而充满警惕的眼神。寒风裹挟着冰冷的雪粒,如刀刃般刮过张远的脸颊,刺骨的寒意渗透进皮肤,带来微微的钝痛。...

mySoul 468

<span class=“js_title_inner“>第二章 初次交锋</span>

前方,一个身材魁梧的男子稳稳站立,手持长刀,刀锋在幽暗的天光下闪烁着寒芒,宛如一道致命的雷霆,映照着男子犀利而充满警惕的眼神。村长听完张远的来意,缓缓叹了口气,眼中闪过一抹痛苦:“今年的冬天格外冷,前些年还能靠狩猎、采集度日,可如今,山里几乎没有猎物,地里的庄稼也早已枯死,粮食眼看着就要吃完……”他说着,随手捡起一块散落在地的泥块,摩挲着粗糙的表面,继续道,“同时,我可以教大家制作一些简易的捕猎工具,提高成功率。张远环顾四周,目光在昏暗的屋内扫过,看到墙角处抱团取暖的村民,瑟瑟发抖的孩童,疲惫蜷缩的老人。

mySoul 567

明末穿越:开局我是资本家 第一章 穿越冰雪的交易者

第一章 穿越冰雪的交易者隆冬时节,狂风怒吼,漫天飞雪遮蔽了高山的轮廓。整个山谷仿佛被银白色的冰雪吞噬,天地间弥漫着彻骨的寒意,仿佛连空气都被冻结成了刀锋,割裂着每一寸裸露的肌肤。张远裹紧冲锋衣,低着头艰难前行。他的呼吸变得急促,每一次吐气都在空气中凝结成白雾,随风飘散。他的手指已经冻得发僵,即便戴着厚实的手套,也无法彻底抵御这刺骨的寒冷。每走一步,都能听见脚下积雪被踩碎的“咔嚓”声。每迈出一步,他...

mySoul 637

<span class=“js_title_inner“>明末穿越:开局我是资本家 第一章 穿越冰雪的交易者</span>

面对这个动荡的时代,他是一个毫无根基的外来者,身无分文,身份成谜,连自身的安危都未可知。他努力回忆着自己穿越前的一切,那块神秘的金属板,那一瞬间的吸力,仿佛时间和空间被撕裂,他整个人被无形的力量吞噬。他身后的几个村民也悄悄地打量着张远的装备,那厚实的冲锋衣、坚固的登山靴、背后的背包,所有的一切都与他们的认知格格不入。他深吸了一口冰冷的空气,感受到肺部的微微刺痛,才终于确定这不是梦境,而是残酷的现实。他现在的处境十分微妙,这些村民对他充满怀疑,他需要尽快找到一个合理的身份,避免引起更大的注意。

mySoul 424

<span class=“js_title_inner“>明末穿越:开局我是资本家 第一章 穿越冰雪的交易者</span>

面对这个动荡的时代,他是一个毫无根基的外来者,身无分文,身份成谜,连自身的安危都未可知。他努力回忆着自己穿越前的一切,那块神秘的金属板,那一瞬间的吸力,仿佛时间和空间被撕裂,他整个人被无形的力量吞噬。他身后的几个村民也悄悄地打量着张远的装备,那厚实的冲锋衣、坚固的登山靴、背后的背包,所有的一切都与他们的认知格格不入。他深吸了一口冰冷的空气,感受到肺部的微微刺痛,才终于确定这不是梦境,而是残酷的现实。他现在的处境十分微妙,这些村民对他充满怀疑,他需要尽快找到一个合理的身份,避免引起更大的注意。

mySoul 828

短篇小说精选:第五章:命运的选择

李珂的目光紧紧锁定在那本浮现于空中的书卷上,心跳在激烈跳动,仿佛整颗心都被某种未知的力量牵引着。他知道,眼前这本书,不仅仅是命运的注脚,更是一把打开未来之门的钥匙。每一个字,每一个符号,都承载着无尽的秘密与可能。而“真理之核”这四个字,更像是一颗璀璨的星辰,吸引着他的目光,无法逃脱。他微微低头,握紧了手中的剑柄,那柄剑自从他踏入这片神秘的天地之后,就一直在他手中,沉默不语,却又充满了某种无法言喻的...

mySoul 663

<span class=“js_title_inner“>短篇小说精选:第五章:命运的选择</span>

那是超越语言的存在,李珂明白,书卷中的内容并非简单的文字,而是一种象征,一种引导着他走向未知的路径。他微微低头,握紧了手中的剑柄,那柄剑自从他踏入这片神秘的天地之后,就一直在他手中,沉默不语,却又充满了某种无法言喻的重量。李珂认出那是“真理之核”的标志,一颗悬浮的星辰,周围环绕着无数复杂的几何形状,像是宇宙的核心,蕴含着无尽的智慧和力量。在它的中心,有一道黑色的裂痕,仿佛深邃的漩涡,吞噬着周围的一切光芒。”低沉的声音再次响起,这一次,它不再试图阻止,而是带着一种莫名的宽慰,“真理,终究属于敢于面对的人。

mySoul 792

短篇小说精选:第4章 真理之核

李珂的目光紧紧锁定在那本浮现于空中的书卷上,心跳在激烈跳动,仿佛整颗心都被某种未知的力量牵引着。他知道,眼前这本书,不仅仅是命运的注脚,更是一把打开未来之门的钥匙。每一个字,每一个符号,都承载着无尽的秘密与可能。而“真理之核”这四个字,更像是一颗璀璨的星辰,吸引着他的目光,无法逃脱。他微微低头,握紧了手中的剑柄,那柄剑自从他踏入这片神秘的天地之后,就一直伴随着他。剑身散发出淡淡的蓝色光芒,与书卷的...

mySoul 643

第3章 命运的抉择

宁静的星空下,李珂缓缓迈步。他的目光凝视远方,那巨大的时光之轮静静旋转,光辉洒满整片天地。这里的宁静仿佛一场梦,然而,他的内心却深知:这仅仅是个开始。真相之书大殿的蓝色光芒消失后,一本悬浮的古朴书卷突然出现在李珂眼前。书卷的封面上,铭刻着一个复杂的齿轮符号,仿佛在诉说着时间的秘密。“命运的轨迹从未被真正书写,但真相就在这里。”熟悉的女子声音再次响起,清冷中带着不可抗拒的威严。李珂抬起手,触碰书卷。...

mySoul 607

<span class=“js_title_inner“>第3章 命运的抉择</span>

他的意识开始模糊,耳边传来无数断断续续的低语——那些似乎是从未来和过去的片段中传来的声音。”女子的声音渐渐变得低沉,“它的存在是个悖论,只有背负命运钥匙的人,才能踏上寻找它的旅途。李珂抬起手,触碰书卷。然而,他的脚步刚踏入塔的影子,一道黑影突然从塔内冲出,挡在他的面前。书卷的封面上,铭刻着一个复杂的齿轮符号,仿佛在诉说着时间的秘密。女子伸手指向远方,一个模糊的光点在荒漠的尽头微微闪烁:“穿过荒芜之境,找到那座失落的神庙。”女子的身影再度出现,“如果时光之轮失衡,这里便是未来的模样——一片没有尽头的荒漠。

mySoul 298

第2章 命运的钥匙

时间的齿轮在缓缓转动。李珂站在星空下,手中的光之钥散发出柔和的光芒,像是某种无声的召唤。他目光坚定,沿着光芒指引的方向一步步迈向那悬浮在虚空深处的巨大齿轮。耳边,那个熟悉的声音再次响起,冰冷中带着一丝不容置疑的威严:“你的选择将重塑一切,记住,前方没有退路。”李珂抿紧了嘴唇,他不喜欢被命运牵着走的感觉,但他知道,现在没有时间犹豫。他咽下所有的疑问与不安,继续前行。光门的秘密不知走了多久,一道浮动的...

mySoul 724

<span class=“js_title_inner“>第2章 命运的钥匙</span>

女子缓缓走近,目光直视李珂,像是在剖析他的灵魂,“你每一个选择,都将引发连锁反应。当他的指尖碰触到晶体的一瞬间,一股强烈的能量涌入他的身体,无数画面如潮水般涌入脑海。”熟悉的声音在他背后响起。李珂转身,戴头盔的女子正站在不远处,语气一如既往地平静,“时间核心记录着所有可能的未来,也决定着过去的稳定。”女子的声音从他身后传来,冷静而笃定,“你每一个选择,都像齿轮上的刻痕,最终决定时光之轮的运转轨迹。耳边,那个熟悉的声音再次响起,冰冷中带着一丝不容置疑的威严:“你的选择将重塑一切,记住,前方没有退路。

mySoul 898

短篇小说系列:时光之轮·第二章:裂缝中的真相

当李珂再次睁开眼时,他发现自己身处一片空旷的大厅。四周的墙壁光滑如镜,映照出他困惑的脸庞。大厅的正中央悬浮着一个巨大的齿轮,缓缓转动着,每一次转动都发出低沉的轰鸣,仿佛时间本身的心跳。“欢迎来到时光议会的核心,‘裂缝’。”那个熟悉的声音再次响起,是那位戴着头盔的女子。李珂转头望去,女子正静静站在他的身后。没有了外面的喧嚣,这里的安静几乎让人窒息。“你把我带到这里来,到底想让我做什么?”李珂强压下心...

mySoul 455

短篇系列小说:时光之轮

每个梦境都有一个源头,每段记忆都有一个裂缝。李珂站在古老的钟楼下,环视着这个他从未见过的城市——一座充满蒸汽与机械的未来都市。远处,熙熙攘攘的街道上,机械马车与人类并肩行走;空中飞翔的气垫船不时呼啸而过,划破了悠长的天际。每一个细节都让他心中泛起莫名的震动,但却又感觉如此熟悉。“李珂。”一个声音轻轻唤住了他的思绪。他转身,只见眼前的女子身着古老的制服,金发如瀑,脸庞却隐藏在一顶镶着细碎宝石的头盔后...

mySoul 407

短篇小说精选:星际孤岛

人类在宇宙中的扩展速度远超所有预想,星际航行已经不再是科幻中的遥不可及,而是日常的常态。可随着不断拓展的星际殖民地,人类却逐渐迷失在无尽的星空中,甚至有人开始怀疑,这片浩瀚的宇宙是否真的属于他们。艾拉·诺兰是一名航天员,负责探索一个名为“泽塔-1”的远古星球。这颗星球位于银河系的边缘,距离地球已有上百光年的距离,曾是一个失落的文明遗址。没人知道泽塔-1究竟发生了什么,那里的遗迹被覆满了厚重的尘土和...

mySoul 467

<span class=“js_title_inner“>短篇小说精选:星际孤岛</span>

她用飞船上的探测器扫描了一遍,发现塔内的结构复杂得超出了她的理解范畴,而最令人不安的是,塔内的能量似乎有意识地与她的探测器进行互动。她曾梦想着与人类一同探索星际的奥秘,成为历史的一部分,可如今,她却只能在无尽的黑暗与寂静中孤独地守护着一颗死去的星球。她的身体被一股无形的力量禁锢在了塔的核心,她的意识与这颗星球的能量完全融合,成为了星球与外界沟通的唯一桥梁。突然,所有的光芒聚焦到她的身上,脑海中响起了一声低沉的声音:“你,终于来了。然而,随着时间的流逝,她逐渐意识到,这并非是她的选择。

mySoul 292

短篇小说:深夜食堂的最后一碗面

冬日的午夜,城市霓虹微弱,街头的寒风裹挟着寂静。巷子深处,一家老旧的小面馆仍然亮着昏黄的灯光。门口的风铃轻轻摇晃,仿佛在为夜归人指引归宿。面馆的老板老周是一位沉默寡言的中年男人,留着花白的胡渣。他总是在午夜开店,面对三三两两的客人,默默端上一碗热气腾腾的面。他从不多问,但总能从客人的眼神中看出他们需要一份什么样的安慰。这天夜里,一个穿着黑色风衣的女人推开了门。她低着头,似乎有千斤重的心事。老周扫了...

mySoul 306

Web 3.0 是什么

对于Web2.0来说,最重要的是Web服务中的双向消息协议,该协议是Web2.0架构的关键元素之一。两个主要类型是REST API和SOAP构建软件的方法。REST是一种Web服务的服务器端向客户端传送消息的一种方法,主要有GET、POST、DELETE、PUT四种传递消息的方式,分别对于获取、提交、删除、更新四种Web2.0的状态。SOAP是一种依赖于服务器来保存状态信息的一种方式,其主要传递方式为XML的方式传递。(SOAP现在已经不在使用,传递方式比较多的JSON信息传递)

mySoul 2102

时光穿越:本草纲目新传

第一章:异世降临一场意外,让现代人林峰穿越到了明朝时期。凭借丰富的现代农业和科技知识,他决定帮助这个时代的百姓改善生活。林峰深入田间地头,传授农民们先进的农业技术,引导他们种植高产的粮食作物。在他的指导下,粮食产量大增,百姓们的生活逐渐殷实起来。有了稳定的粮食来源,林峰开始思考如何进一步推动这个时代的发展。一日,林峰在书店中闲逛,无意中发现了一本《本草纲目》。他想起现代人对这部巨著的赞誉,决定找到...

mySoul 602

小说:第一章 穿越时空,一桶金梦开始

第一章 穿越时空,一桶金梦开始在电闪雷鸣的夜晚,一道刺眼的白光突然从天而降,准确地击中了正在家中的林峰。他瞪大眼睛,只觉得全身被一股强大的力量裹挟,接着便失去了意识。当林峰再次睁开眼睛的时候,他发现自己身处一个陌生的地方,四周古色古香的建筑、宽大的长袍、古代发髻的人们……这一切都让他瞠目结舌。经过一番询问和观察,林峰确定了一个惊人的事实——他竟然穿越了时空,来到了古代!尽管内心充满了震惊和不适应,...

mySoul 672

轻松读懂公司估值

公司估值是推倒公司的公允价值,企业的真实价值不是客观确定的,而是不同评估方法的折中,这些不同的评估方法都指向了公司的具体公允价值范畴。例如,售完的演唱会门票,对于其粉丝的价值,要远远高于对该演唱会不感兴趣的粉丝的价值。一克的黄金,不会产生任何收益,但是会对投资者产生保护感,这就是价值。许多的资产的价值,往往不取决于其面值或者预期现金流,而在于其有形的,有时非理性的,或者感性的特性。与之相对的,是无...

mySoul 306

应收账款天数和应付账款天数和现金比率和速动比率

应收账款和应付账款天数应收账款天数计算公式为:应收账款天数 = 平均应收账款 * 360 除以 销售额应收账款天数(DOS)显示公司需要多少天才能从客户那里收回账款,所以应收账款天数增加的时候,表明应收账款管理出现恶化,表明公司收不到货款。数值增加会减少公司经营性现金流。应付账款天数 = 平均应付账款 * 360 / 销售成本应付账款天数量化公司需要多长时间才会支付供应商货款,数据目标关系:应收账...

mySoul 1771

中航首钢绿能Reits2022年中期报告分析

资产负债表利润表安全性分析安全性分析主要分析项目的安全性采用公式为现金及现金等价物/有息负债计算过程如下:有息负债为0所以该项目足够安全盈利能力分析主要从营业收入角度和资产角度进行分析营业收入角度:即每营业收入多少转化为了净利润计算过程如下所示:(212,117,229.63营业收入 - 178,702,660.90营业总成本 )/ 212,117,229.63营业收入 = 15...

mySoul 589

财报是用来排除企业的

一个故事,某家企业该年度出现了亏损,如何扭亏为盈呢,很简单,首先和银行签订协议,将公司的大楼作价归还给银行,算是欠款还完钱了。第二步,再签一份合同,公司和银行买楼,算是正好扭亏为盈了。为什么会这样呢,是因为原本房产价值3000万元,作价1.6亿元,还贷款1.6亿元,获得了1.3亿元营业收入,这样就产生了利润。此时,再用1.6亿元买回那套房子,这1.6亿元是借款,原本就欠款...

mySoul 333

什么是债券

什么是债券债券(Notes)是政府金融机构工商企业等机构直接向社会借债筹措资金时向投资者发行承诺按一定利率支付利息并按约定条件偿还本金的债权债务凭证债券的本质是债的证明书具有法律效力债券购买者与发行者之间是一种债权债务关系债券发行人即债务人(Debtors)投资者(或债券持有人)即债权人(Creditors)最常见的债券为定息债券浮息债券以及零息债券与银行信贷不同的是债券是一种直接债务关系...

mySoul 382

这本关于Node.js的书,是一本神书,助你学会Node.js,为你升职加薪,走上人生巅峰

1什么是Node.js?有人说Node.js是前端,有人说Node.js是后端,也有人说我不会Node.js。在从Google的V8引擎发布以来,Node.js自出现以来,靠着单线程,高并发的应用场景,快速的安装在前端和后端的服务器中。了解Node.js一方面,可以拥有一个单线程,高并发应用场景的解决方案,另外一方面还可以学会基本的WEB开发。为你升职加薪,走上人生巅峰!2在这里呢,推荐一本神书,作者是优快云旗下的Gichat专栏作者。先节选一些内容,推荐语:本书...

mySoul 1375

微软官宣 Win 11 即将到来,网友:没安卓,升个寂寞啊!

文 | 御坂弟弟出品 | OSC开源社区(ID:oschina2013)之前,Windows 11 正式发布!能跑安卓应用程序,意味着Windows 11将支持Android应用程序,人们在手机上使用的数百万款流行应用程序,将可以直接出现在PC桌面上。让开发者沸腾了一段时间!微软表示,Windows 11将在今年年末正式上市,Windows 10的现有用户可以免费升级,预装有Windows 11的...

mySoul 184

用户必须有权关闭推荐和广告,网信办:算法推荐管理规定开始征求意见

机器之心报道机器之心编辑部亲戚朋友一刷短视频就不带停?这种现象已经非常普遍了,但推荐系统除了让信息传播速度加快之外也不全是好事。8 月 27 日,国家互联网信息办公室起草的《互联网信息服务算法推荐管理规定(征求意见稿)》出炉,正向社会公开征求意见。本次《征求意见稿》所涉的范围非常广泛。《征求意见稿》中明确指出,所谓的算法推荐技术,是指应用生成合成类、个性化推送类、排序精选类、检索过滤类、调度决策类...

mySoul 403

JS必知的6种继承方式

作者:朱玉星介绍:活跃于国内各技术社区,多年来致力于React技术,具有丰富的实战项目经验,喜欢的他的可关注他的公众号【前端小弟】前言JS作为面向对象的弱类型语言,继承也是其非常强大的特性之一。那么如何在JS中实现继承呢?让我们拭目以待。JS继承的实现方式既然要实现继承,那么首先我们得有一个父类,代码如下://父类functionPerson(name){//给构造函数添加了参数...

mySoul 259
上一篇: TypeScript入坑
下一篇: C++ 面向对象 一
小小∽
小小∽ 企业官方账号 企业官方账号
博客等级 码龄9年 306粉丝 361原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值