[英]JS Declare Class & Instantiate For Singleton
我剛剛意識到您可以使用 new 聲明和構造 class 的new
實例。 這對於 singleton 的使用感覺非常優雅。 這是有效的嗎? 如果是這樣,有什么缺點嗎?
var c = new class C {
constructor () {
this.foo = 'bar';
}
}
console.log(c.foo);
console.log(c.constructor.name);
console.log(c.constructor.prototype);
編輯
console.log(C); // Uncaught ReferenceError: C is not defined
如果您的項目很小,Singleton 提供了很好的解決方案。 但這個項目更大,更復雜。 那么你的 singleton class 就會混亂。 您幾乎可以追逐 singleton 中的狀態,來自某個地方的奇怪變量每天都在增加。
一個好主意是放棄 class 並使用功能方式。 給函數所需的 arguments 並遞歸傳遞下一個函數。 像這樣:
const main = () => {
const setting = {...}
const resultA = funcA(setting)
funcB(setting, resultA)
funcC(resultA)
}
這種方式有助於讓我們知道 function 需要設置什么。 例如, funcA
和funcB
需要setting
,而funcC
不需要。 更進一步,數據庫實例或網絡資源包含在其中,您可以詳細控制各種效果。 細節通過“依賴注入”找到。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.