自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

how2js的博客

个人站how2js

  • 博客(15)
  • 资源 (2)
  • 收藏
  • 关注

原创 分页查询缓存(代理模式)

缓存代理对于多次重复的操作,可以使用缓存代理的形式进行缓存(代理模式的知识,可以看我另外一篇文章设计模式-代理模式),在分页查询中,对于相同的分页,我们不希望进行重复的请求,毕竟ajax是非常消耗性能的,这个时候就可以使用缓存代理对象,当存在缓存时直接使用缓存进行获取,当不存在时才将请求交还给ajax对象。在分页查询中的优化在ajax中应用缓存代理,由于ajax异步的原因,所以会使用到回调或...

2020-03-21 16:18:19 760

原创 设计模式-适配器模式

前言编写程序是会碰到接口不一致的情况,而适配器模式就是解决接口不兼容的一种设计模式,使接口不一致的两个程序在一起工作正常,假如有如下展示地图的democonst baiduMap = { show(){ console.log("百度地图绘制"); }}const googleMap = { show(){ console.log("google地图绘制");...

2020-03-30 09:45:58 125

原创 设计模式-状态模式

前言状态模式应用比较广泛,根据状态改变行为,可以说在我们代码中常常会用到,状态机也是基于如此实现,比如我们想根据状态更改class等等。以下是一个控制灯开关的demofunction Light(){ this.state = "off"; this.button = null;}Light.prototype.init = function(){ const button =...

2020-03-29 17:05:25 117

原创 设计模式-装饰器模式

简介装饰器模式是不改变原对象的前提下动态的改变或者为对象添加职责的一种模式,这在JavaScript这种语言中其实是非常容易的。const obj = { name:"stev"}obj.name += "en"Javascript中的装饰器模式Javascript中采用保存引用的方式可以简单的实现为函数添加功能,比如常见的添加监听器,我们不知道是否已经存在的情况下,防止对其覆盖...

2020-03-29 11:08:39 111

原创 设计模式-中介者模式

简介程序应用有大大小小的对象的组成,将大对象拆分成小对象可以提高复用性,但是相对应的可能也会造成对象之间的关联程度增大,降低复用性。中介者模式的设计在于提供一个统一的中间者管理这些对象,降低对象之间的耦合性。将对象之间的多对多关系转化为一对多的关系demo假设有一场比赛,分为两个队伍,当一个队伍全部died后,另外一个队伍获胜,如果不存在中介者的时候,需要保存自己伙伴和敌人,每个对象之间紧紧...

2020-03-29 10:39:12 102

原创 设计模式-职责链模式

简介职责链模式进行顺序请求,使每个对象都有机会处理请求,避免请求者与接受者之间的耦合。沿着链条传递请求,直到有个对象能够处理它为止。开发中的职责链模式先考虑如下代码function chain(item){ if(item===1){ console.log("执行方法1"); }else if(item===2){ console.log("不满足条件1,执...

2020-03-26 17:04:08 93

原创 设计模式-享元模式

前言很多时候我们可能都会存在创建许多类似对象的经历,而他们可能只是某个属性上的不同,创建大量对象会浪费资源。享元模式是一种性能优化模式,是一种时间换取空间的优化策略。内部状态和外部状态创建享元模式,需要弄明白不同对象之间的不同,而这些不同的属性、方法就可称为外部状态,外部状态不可以被共享。可以被对象之间共享的属性通常称为内部状态。对象池技术享元模式可以用于那些需要大量创建对象的场景,而且...

2020-03-26 16:04:35 86

原创 设计模式-模板方法模式

简介模板方法设计模式是一种非常依赖继承和抽象类的设计模式,在父类模板方法中封装子类的算法框架以及方法的执行顺序。子类放弃对自己的控制权,改为父类通知子类调用。面向对象语言的模板方法设计模式(Java)传统面向对象基于抽象类和继承实现abstract public class AbParent{ // 模板方法 final void init(){ fn1(); fn2(); ...

2020-03-26 15:34:28 105

原创 设计模式-组合模式

简介组合模式就像一系列对象的组合,大对象由小对象组合,小对象由更小的对象进行组合。类似于树形结构,在命令模式中的宏命令就类似一个组合对象设计模式-命令模式。其余下属对象是其中的叶对象。组合对象不进行真正的操作,而是将请求交给相应的叶对象,遍历叶对象。叶对象与组合对象之间接口一致,执行相应的操作。宏命令对象并不能看出组合模式的优势,因为其本身只是一个命令模式,对其进行拓展构建更加强大的组合对象。...

2020-03-24 11:47:15 103

原创 设计模式-命令模式

简介命令模式的命令就是执行特定事件的指令,应用场景可用于请求者与接收者之间的解耦,很多时候我们并不知道或者说也并不关心接收者是什么,这就是变化的部分,但是知道的是一定会做一些事,这就是确定的事。设计模式需要处处想着不变与变化分离。Javascript中的命令模式为按钮添加命令,将接受者与请求者之间解耦interface ICommand{ execute():void;}// 命令...

2020-03-24 10:57:01 90

原创 设计模式-发布-订阅模式

简介发布-订阅模式也可称为观察者模式,使用非常广泛,也非常有用。通过发布者遍历依赖通知,监听者监听添加依赖。在Vue2.x中的响应式原理也是通过发布-订阅模式实现DOM事件非常常用的DOM事件监听就是发布-订阅模式的实现。document.body.addEventListener('click',function(){ alert('点击');},false)我们不知道事件什么...

2020-03-23 11:27:24 339

原创 设计模式-迭代器模式

简介迭代器模式就是提供一种顺序访问对象的方式,当前主流语言基本都已经内置了迭代器,比如JavaScript中的forEach,迭代器模式分为内部迭代器模式和外部迭代器模式。内部迭代器将实现放在内部,隐藏实现原理,而外部迭代器模式则需要显示的调用,类似JavaScript的generator,需要显示的调用next()。也可以自己实现,在某些时候避免耦合性大的场景使用。function crea...

2020-03-23 09:18:11 115

原创 设计模式-代理模式

代理模式代理模式是对对象的代理,提供访问对象的权利,不直接访问对象,而是通过代理对象访问。代理分为保护代理和虚拟代理。保护代理就是为对象提供过滤机制。在Javascript中其实可以使用原生的Proxy实现。虚拟代理是将一些大的开销交给代理,达到惰性加载的目的。保护代理在Javascript不常见,着重记录虚拟代理虚拟代理虚拟代理就是将一些大的开销交给代理处理的过程。用常用的预加载技术举例,...

2020-03-21 09:36:20 109

原创 设计模式-策略模式

策略模式俗话说条条大路通罗马,到达罗马有不同的道路可以选择,策略模式即体现如此,根据不同的表现实现不同的算法,将算法封装起来假设我们需要根据不同的绩效计算奖金。实现如下:function getCalculate (performance,a){ if(performance==='A'){ return a*4; } if(performance==='B'){ ...

2020-03-20 12:14:08 89

原创 设计模式-单例模式

前言在将函数作为一等对象的Javascript中,没有类的概念,设计模式相对于传统的面向对象有所区别单例模式单例模式是一个类只有一个实例的模式,比如线程池、DAO(数据库访问对象等),都不需要每次新创建一个实例传统面向对象单例模式的创建public class BlogDAO implements DAO<BlogORM>{ private BlogDAO(){}; pu...

2020-03-20 10:22:12 83

opencv_js.rar

包含编译好的opencv.js 所需的JavaScript 文件和配套的 utils.js 工具库

2019-06-12

faceDetect.rar

该资源主要包含用于获取训练数据,以及对数据进行训练,从而预测,达到人脸识别的目的

2019-06-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除