首頁技術(shù)文章正文

JavaScript中的工廠模式和單例模式的使用

更新時間:2023-09-05 來源:黑馬程序員 瀏覽量:

設(shè)計(jì)模式在面向?qū)ο筌浖O(shè)計(jì)過程中針對特定問題的簡潔而優(yōu)雅的解決方案。目前說到設(shè)計(jì)模式,一般指的是《設(shè)計(jì)模式:可復(fù)用面向?qū)ο筌浖幕A(chǔ)》一書中提到的23種常見的軟件開發(fā)設(shè)計(jì)模式。JavaScript中只需要了解常用的模式即可,JavaScript常用設(shè)計(jì)模式有以下七大類型:

JavaScript常用設(shè)計(jì)模式
下面看單例模式和工廠模式的使用。

工廠模式

在JavaScript中,工廠模式的表現(xiàn)形式就是一個調(diào)用即可返回新對象的函數(shù),當(dāng)需要創(chuàng)建多個屬性對象,包含多個屬性方法時,可以使用工廠模式,示例代碼如下:

// 工廠模式
function FoodFactory(name, color) {
  return{
    name,
    color
  }
}
const f1 = FoodFactory('西蘭花','黃綠色')
// 構(gòu)造函數(shù)
function Food(name, color) {
  this.name = name
  this.color = color
}
const f3 = new Food('西蘭花','黃綠色')

1.vue3-createApp
傳送門使用自定義配置新建一個實(shí)例。

const instance = axios.create({
  baseURL: 'https://some-domain.com/api/',
  timeout: 1000,
  headers: {  'X-Custom-Header':'foobar' }
})

在JavaScript中,工廠模式的表現(xiàn)形式就是一個調(diào)用即可返回新對象的函數(shù)。

// 工廠模式
function FoodFactory(name, color) {
  return {
    name,
    color
  }
}
const toy1 = FoodFactory('西蘭花','黃綠色')
const toy2 = FoodFactory('花菜','白色')

2.axios-create

我們使用自定義配置新建一個實(shí)例 ,

const instance = axios.create({
  baseURL: 'https://some-domain.com/api/',
  timeout: 1000,
  headers: { 'X-Custom-Header': 'foobar'}
})

在JavaScript中,工廠模式的表現(xiàn)形式就是一個調(diào)用即可返回新對象的函數(shù)。

// 工廠模式
function FoodFactory(name, color) {
  return {
    name,
    color
  }
}
const toy1 = FoodFactory('西蘭花','黃綠色')
const toy2 = FoodFactory('花菜','白色')
// 構(gòu)造函數(shù)
function Food(name, color) {
  this.name = name
  this.color = color
}
const f3 = new Food('西蘭花','黃綠色')

單例模式

在使用單例模式模式時,單例對象整個系統(tǒng)需要保證只有一個存在。

1693884466535_單例模式.png

consts1= SingleTon.getInstance()
consts2= SingleTon.getInstance()
console.log(s1=== s2)//true

1.單例方法:

1.自己實(shí)現(xiàn)

2.vant中的toast和notify組件

2.單例的思想:

1.vue2中的use方法

2.vue3中的use方法


分享到:
在線咨詢 我要報名
和我們在線交談!