JavaScript设计模式中的单一职责原则
Posted 三水草肃
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript设计模式中的单一职责原则相关的知识,希望对你有一定的参考价值。
单一职责原则(SRP)
一个对象/方法只做一件事情。就一个类而言,应该仅有一个引起它变化的原因
- 一个方法有两个动机可以修改,那么这个方法就具有两个职责。如果一个方法承担了过多的指责,那么在需求的变迁过程中,需要改写这个方法的可能性就越大。当多个职责耦合在一起的时候,一个职责发生变化可能会影响到其他职责的实现。这种是低内聚高耦合和脆弱的设计。
SRP 原则
-
一个对象(方法)只做一件事情。
-
SRP 原则在很多设计模式中都有广泛的运用,例如代理模式,迭代器模式、单例模式和装饰者模式。
-
代理模式
-
把添加 img 标签和预加载图片的职责分开放到两个对象中,这两个对象都只有一个被修改的动机。他们各自发生变化的时候,也不会影响到另外一个对象
const myImage = (function () const Image = document.createElement("img"); document.body.appendChild(Image); return setSrc: function (src) Image.src = src; , ; )(); // 加一层代理,在图片加载前先展示 x.jpg const proxyImage = (function () const img = new Image(); img.onload = function (src) myImage(this.src); ; return function () myImage("./logo192.png"); img.src = src; ; )(); proxyImage( "http://a1.qpic.cn/psc?/V136LlQn4Btod3/ruAMsa53pVQWN7FLK88i5iAcMicwMv1z7. 3IKQFRFzr50QXCJ3qDREMjNkw3TsqT9lwVUntnOV*0H27hHUEP8nH1fGWVMHu4.OQLi1dRSE4!/c&ek=1&kp=1&pt=0&bo=VQhABlUIQAYWECA!& tl=3& vuin=1411818691&tm=1666198800&dis_t=1666199020&dis_k=424467f433b9c9b64c82c0846a57d281&sce=60-2-2&rf=0-0" );
-
SRP 应该何时分离职责
- 有两个职责同时发生变化,就没有必要分离。比如 ajax 请求的时候,创建 xhr 对象和发送 xhr 请求总是在一起,那么创建 xhr 对象和发送 xhr 请求就没有必要分离。
- 两个职责已经被耦合在一起,但他们还没有发生改变的征兆,也没必要分离他们。
SRP 的优缺点
- 优点
- 降低了单个类或者对象的复杂度,按照职责把对象分解成更小的粒度,有助于代码的复用。当一个职责需要变更的时候,不会影响到其他的职责。
- 缺点
- 粒度分的细,会增加编写代码的复杂度,也会增加对象之间联系的难度。
以上是关于JavaScript设计模式中的单一职责原则的主要内容,如果未能解决你的问题,请参考以下文章