摘要: 单例模式的定义是:保证一个类仅有一个实例,并提供一个访问它的全局访问点。 单例模式是一种常用的模式,有一些对象我们往往只需要一个,比如线程池、全局缓存、浏 览器中的 window 对象等。在 JavaScript开发中,单例模式的用途同样非常广泛。试想一下,当我 们单击登录按钮的时候,页面中会出现一 阅读全文
posted @ 2017-10-24 10:57 口金十兑 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 代理模式是为一个对象提供一个代用品或占位符,以便控制对它的访问。 代理模式是一种非常有意义的模式,在生活中可以找到很多代理模式的场景。比如,明星都 有经纪人作为代理。如果想请明星来办一场商业演出,只能联系他的经纪人。经纪人会把商业演 出的细节和报酬都谈好之后,再把合同交给明星签。 代理模式的关键是, 阅读全文
posted @ 2017-10-24 10:56 口金十兑 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 俗话说,条条大路通罗马。在美剧《越狱》中,主角 Michael Scofield 就设计了两条越狱的 道路。这两条道路都可以到达靠近监狱外墙的医务室。 同样,在现实中,很多时候也有多种途径到达同一个目的地。比如我们要去某个地方旅游, 可以根据具体的实际情况来选择出行的线路。  如果没有时间但是不在 阅读全文
posted @ 2017-10-24 10:56 口金十兑 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 玩魔兽争霸的任务关时,对 15 级乱加技能点的野生英雄普遍没有好感,而是喜欢留着 技能点,在游戏的进行过程中按需加技能。同样,在程序开发中,许多时候都并不希望某个类天 生就非常庞大,一次性包含许多职责。那么我们就可以使用装饰者模式。装饰者模式可以动态地 给某个对象添加一些额外的职责,而不会影响从这个 阅读全文
posted @ 2017-10-24 10:56 口金十兑 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 就一个类而言,应该仅有一个引起它变化的原因。在 JavaScript中,需要用到类的场景并不太多,单一职责原则更多地是被运用在对象或者方法级别上,因此讨论的是大多基于对象和方法。 单一职责原则(SRP)的职责被定义为“引起变化的原因”。如果我们有两个动机去改写一 个方法,那么这个方法就具有两个职责。 阅读全文
posted @ 2017-10-24 10:55 口金十兑 阅读(526) 评论(0) 推荐(0) 编辑
摘要: 最少知识原则 最少知识原则(LKP)说的是一个软件实体应当尽可能少地与其他实体发生相互作用。这 里的软件实体是一个广义的概念,不仅包括对象,还包括系统、类、模块、函数、变量等。本 节我们主要针对对象来说明这个原则,下面引用《面向对象设计原理与模式》一书中的例子来 解释最少知识原则: 某军队中的将军需 阅读全文
posted @ 2017-10-24 10:55 口金十兑 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 模式和重构之间有着一种与生俱来的关系。从某种角度来看,设计模式的目的就是为许多重 构行为提供目标。 在实际的项目开发中,除了使用设计模式进行重构之外,还有一些常见而容易忽略的细节, 这些细节也是帮助我们达到重构目标的重要手段。进行一些介绍,其中有一部分思想 来自 Martin Fowler的名著《重 阅读全文
posted @ 2017-10-24 10:54 口金十兑 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 当我们谈到接口的时候,通常会涉及以下几种含义,下面先简单介绍。 我们经常说一个库或者模块对外提供了某某 API接口。通过主动暴露的接口来通信,可以隐 藏软件系统内部的工作细节。这也是我们最熟悉的第一种接口含义。 第二种接口是一些语言提供的关键字,比如 Java的 interface 。 interf 阅读全文
posted @ 2017-10-24 10:54 口金十兑 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 开放 封闭原则 在面向对象的程序设计中,开放封闭原则(OCP)是最重要的一条原则。很多时候,一个 程序具有良好的设计,往往说明它是符合开放封闭原则的。 开放封闭原则最早由 Eiffel语言的设计者 Bertrand Meyer在其著作 Object Oriented Software Cons 阅读全文
posted @ 2017-10-24 10:54 口金十兑 阅读(399) 评论(0) 推荐(0) 编辑
摘要: 前辈总结的这些设计原则通常指的是单一职责原则、里氏替换原则、依赖倒置原则、接口隔离原则、合成复用原则和最少知识原则。 面向对象的设计原则,可以说每种设计模式都是为了让代码迎合其中一个或多个原则而出现的,它们本身已经融入了设计模式之中,给面向对象编程指明了方向。 阅读全文
posted @ 2017-10-24 10:53 口金十兑 阅读(99) 评论(0) 推荐(0) 编辑