GitHub 项目徽章的添加和设置

许多同学在 GitHub 上发布了自己的开源项目,有辛苦开发的实用工具、构思巧妙的开源库、别具一格的 App、精心整理的示例代码等等。 自己花了大把时间和精力

设计模式之适配器模式(Adapter)

介绍

适配器模式(Adapter)是将一个类(对象)的接口(方法或属性)转化成客户希望的另外一个接口(方法或属性),适配器模式使得原本由于接口不兼容而不能一起工作的那些类(对象)可以一些工作。

适配器的别名是包装器(wrapper),这是一个相对简单的模式。

使用实例

现实中的适配器——apple的各种转接头

相信大家对apple对各种设备设计精良,用户使用方便比较赞同,但是针对各种转接头又有各种吐槽,其实转接头是不是就对应我们但适配器呢?

设计模式之装饰者模式(Decorator)

介绍

装饰者提供比继承更有弹性的替代方案。 装饰者用用于包装同接口的对象,不仅允许你向方法添加行为,而且还可以将方法设置成原始对象调用(例如装饰者的构造函数)。

装饰者用于通过重载方法的形式添加新功能,该模式可以在被装饰者前面或者后面加上自己的行为以达到特定的目的。

定义

给对象动态地增加职责的方式称为装饰者(decorator)模式。

装饰者模式能够在不改变对象自身的基础上,在程序运行期间给对象动态地添加职责。跟继承相比,装饰者是一种更轻便灵活的做法,这是一种“即用即付”的方式。

知识≠技术≠财富

很多人感慨,不是上大学被大学上了。昏昏然步入社会,成为奔波劳碌的拼命蜗居一族。在如今信息爆炸的时代,我觉得拼的其实是你知识到财富的转化率。 思

设计模式之中介者模式(Mediator)

介绍 中介者模式的作用就是解除对象与对象之间的紧耦合关系。增加一个中介者对象后,所有的相关对象都通过中介者对象来通信,而不是互相引用,所以当一

call()、apply()、bind()的用法

在javascript中,函数不仅是一种语法,也是值,也就是说,可以将函数赋值给变量,存储在对象的属性或数组的元素中, 作为参数传入另外一个函

设计模式之模板模式(TemplateMethod)

在 JavaScript 开发中用到继承的场景其实并不是很多,很多时候我们都喜欢用 mix-in 的方式给对象扩展属性。但这不代表继承在 JavaScript 里没有用武之地,虽然没有真正的类和继承

设计模式之策略模式(Strategy)

在程序设计中,我们也常常遇到这样的情况,要实现某一个功能有多种方案可以选择。比如一个压缩文件的程序,既可以选择 zip 算法,也可以选择 gzip 算法。 这些算法灵活多样,而且可以随意互相替换。这种解决方案就是将要介绍的策略模式。

定义

策略模式的定义是:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。

从定义上看,策略模式就是用来封装算法的。但如果把策略模式仅仅用来封装算法,未免有一点大材小用。在实际开发中,我们通常会把算法的含义扩散开来,使策略模式也可以用来封装一系列的“业务规则”。只要这些业务规则指向的目标一致,并且可以被替换使用,我们就可以用策略模式来封装它们。