什么是单例模式?

保证一个类仅有一个实例,并提供一个访问它的全局访问点

用一个变量标志当前是否已经为某个类型创建过对象,如果是,则下次直接返回之前创建的对象。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var Singleton = function (name) {
this.name = name;
this.instance = null;
}

Singleton.prototype.getName = function () {
console.log(this.name);
}

Singleton.getInstance = function (name) {
if (!this.instance) {
this.instance = new Singleton(name);
}
return this.instance;
}

var a = Singleton.getInstance('Tony1');
var b = Singleton.getInstance('Tony2');

console.log(a === b); // true

通过 Singleton.getInstance来获取 Singleton 类的唯一对象,里边使用了 new 来获取,导致了这个类的“不透明性”。

前言

什么是前端路由

每次 GET 或者 POST 请求在服务端有一个专门的正则配置列表,然后匹配到具体的一条路径后,分发到不同的 Controller,进行各种操作,最终将 html 或数据返回给前端,这就完成了一次 IO。

前端路由的实现有两种:

  • URL的hash,即锚点(#),js 通过 hashChange 事件监听 url 的变化
  • HTML5 的 History 模式

优点:

  • 页面持久性,如音乐网站
  • 前后端彻底分离,如 Angular 的 ngRouter,React 的 ReactRouter,还有 Vue 的 vue-router

需要考虑的问题:

  • 页面的拔插性
  • 页面的生命周期
  • 内存管理等

前言

平时项目中经常使用到的框架中必有SDWebImage框架,这是一个很成熟图片缓存框架,而且使用非常的方便,只需一行代码就可以实现设置占位图以及在网络图片拉取成功后替换占位图的功能。虽然,乍一看只是现实了拉取网络图片的小小功能,但是,里面还包含了很多逻辑代码,也是很复杂的,你有没有深究它的实现原理呢?


本站总字数统计:49.8k

感谢您的浏览, 本站总访问量为 次 。
载入天数...载入时分秒...