摘要: 享元模式 享元(flyweight)模式是一种用于性能优化的模式,“fly”在这里是苍蝇的意思,意为蝇量级。享元模式的核心是运用共享技术来有效支持大量细粒度的对象。 享元模式的核心思想就是共享对象,借此达到节省性能的目的。比如说有100套不同的衣服需要拍照,正常的想法都是请一个模特让他换100套衣服 阅读全文
posted @ 2017-02-07 15:11 出世Sunny 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 模板方法模式: 由两部分结构组成,第一部分是抽象父类,第二部分是具体的实现子类。通常在抽象父类中封装了子类的算法框架,包括实现一些公共方法以及封装子类中所有方法的执行顺序。子类通过继承这个抽象类,也继承了整个算法结构,并且可以选择重写父类的方法。 泡咖啡和泡茶的例子 观察两段代码,发现其实他们是大同 阅读全文
posted @ 2017-02-07 11:32 出世Sunny 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 组合模式:一些子对象组成一个父对象,子对象本身也可能是由一些孙对象组成。 有点类似树形结构的意思,这里举一个包含命令模式的例子 感觉上有点像俄罗斯套娃,首先定义了一个接口对象,大家都是这个接口对象,只不过一层套一层,不断调用。 执行过程其实就是深度优先搜索。 一些值得注意的地方 组合模式不是父子关系 阅读全文
posted @ 2017-02-07 11:09 出世Sunny 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 命令模式:有时候需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是什么,此时希望用一种松耦合的方式来设计软件,使得请求发送者和请求接收者能够消除彼此之间的耦合关系。 说法很复杂,简单来说就是希望真正做事情的对象不要直接被调用,当我们下达一些命令之后, 希望对象已经间接的执行 阅读全文
posted @ 2016-12-12 17:55 出世Sunny 阅读(338) 评论(0) 推荐(0) 编辑
摘要: 基本看过高程等书的人都可以对原型继承,原型链查找侃侃而谈,代码中也可以使用原型完成一些事情,但是,我们对于原型真的彻底搞明白了么? 原型由构造器确定 我们的原型是一个对象,构造器函数有一个属性指向这个对象,prototype;而我们每次new出来的实例也有一个属性指向这个对象,__proto__。为 阅读全文
posted @ 2016-12-07 18:17 出世Sunny 阅读(726) 评论(0) 推荐(1) 编辑
摘要: 发布-订阅模式,也叫观察者模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知。 在JavaScript开发中,我们一般用事件模型来替代传统的观察者模式。 书里的现实例子 小明最近看上了一套房子,到了售楼处之后才被告知,该楼盘的房子早已售罄。好在售楼MM 阅读全文
posted @ 2016-12-06 18:05 出世Sunny 阅读(416) 评论(0) 推荐(0) 编辑
摘要: freecodecamp 高级算法地址戳这里。 freecodecamp的初级和中级算法,基本给个思路就能完成,而高级算法稍微麻烦了一点,所以我会把自己的解答思路写清楚,如果有错误或者更好的解法,欢迎留言。 Validate US Telephone Numbers 如果传入字符串是一个有效的美国电 阅读全文
posted @ 2016-12-05 18:19 出世Sunny 阅读(3159) 评论(0) 推荐(0) 编辑
摘要: freecodecamp 中级算法地址戳这里 Sum All Numbers in a Range 我们会传递给你一个包含两个数字的数组。返回这两个数字和它们之间所有数字的和。 Diff Two Arrays 比较两个数组,然后返回一个新数组,该数组的元素为两个给定数组中所有独有的数组元素。换言之, 阅读全文
posted @ 2016-12-05 17:15 出世Sunny 阅读(1468) 评论(1) 推荐(0) 编辑
摘要: freecodecamp 初级算法地址戳这里 Reverse a String 翻转字符串 Factorialize a Number 计算一个整数的阶乘 Check for Palindromes 如果给定的字符串是回文,返回true,反之,返回false。 Find the Longest Wo 阅读全文
posted @ 2016-12-05 16:04 出世Sunny 阅读(1239) 评论(0) 推荐(0) 编辑
摘要: 迭代器模式:指提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。 迭代器模式可以把迭代的过程从业务逻辑中分离出来,在使用迭代器模式之后,即使不关心对象的内部构造,也可以按顺序访问其中的每个元素。 流行语言如Java、Ruby 等都已经有了内置的迭代器实现,许多浏览器也支持 阅读全文
posted @ 2016-12-02 17:28 出世Sunny 阅读(504) 评论(0) 推荐(0) 编辑