摘要:假如你老板叫你做一件事。你說可以,但是我需要一些工具。老板你要的工具我后面會提供給你,現(xiàn)在你馬上寫個(gè)計(jì)劃。
假如你老板叫你做一件事(doWork)。
你說:可以,但是我需要一些工具(tool1, tool2)。
老板:你要的工具我后面會提供給你,現(xiàn)在你馬上寫個(gè)計(jì)劃。
然后,你就可以這樣寫:
function doWork(tool1, tool2){ // 現(xiàn)在你有可用的 `tool1, 2` 啦 // 比如,它們可能都是函數(shù): tool1(); tool2(); console.log("Completed!"); }
但是現(xiàn)在你還不能開始做事(doWork()),因?yàn)槟愣紱]有 tool1 和 tool2. 你需要老板為你提供這些工具,老板是這樣的:
const boss = { tool1: function(){console.log("Using Tool 1...");}, tool2: function(){console.log("Using Tool 2...");}, provide: function(doWork){ return () => doWork(this.tool1, this.tool2); } }
現(xiàn)在,萬事俱備:
// 注入依賴: const doWorkWithTools = boss.provide(doWork); // 現(xiàn)在你的 `doWork` 已經(jīng)擁有 `tool1, 2` 啦: doWorkWithTools();
依賴注入的模式都是類似這樣的,就是定義一個(gè)函數(shù)實(shí)現(xiàn)你的功能,把你所需要的依賴定義成這個(gè)函數(shù)的參數(shù)。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/89485.html
摘要:提升自己,方便他人。其實(shí)一份文檔,說到底是為自己減輕工作量??偨Y(jié)總結(jié)起來,我們在提供一個(gè)通用包的時(shí)候,應(yīng)該考慮以下七個(gè)點(diǎn)文檔。支持的類反射獲取參數(shù)名面向接口編程。一個(gè)注解,快速整合 聲明:本文屬原創(chuàng)文章,首發(fā)于公號程序員自學(xué)之道,轉(zhuǎn)載請注明出處 遇到槽點(diǎn) 開發(fā)實(shí)踐中,對于開發(fā)一個(gè) jar 包,很多人都只是完成功能,只要功能使用沒問題,就算是完事了,但其實(shí)遠(yuǎn)遠(yuǎn)不夠。當(dāng)用戶使用 jar 包...
摘要:是一個(gè)記錄當(dāng)前應(yīng)用所受威脅情況的項(xiàng)目。怎么做呢用參數(shù)化查詢對數(shù)據(jù)格式化,并使查詢語句與數(shù)據(jù)分離。使用參數(shù)化查詢,可以確保程序遠(yuǎn)離注入風(fēng)險(xiǎn)。例子如下除此之外,還有一種安全的做法,就是在項(xiàng)目中使用對象關(guān)系映射或者是查詢構(gòu)造器。 showImg(https://segmentfault.com/img/remote/1460000018641613?w=1680&h=859); OWASP?...
閱讀 1312·2021-11-22 09:34
閱讀 2173·2021-10-08 10:18
閱讀 1736·2021-09-29 09:35
閱讀 2467·2019-08-29 17:20
閱讀 2148·2019-08-29 15:36
閱讀 3410·2019-08-29 13:52
閱讀 788·2019-08-29 12:29
閱讀 1192·2019-08-28 18:10