JS設計模式4 - The Prototype Pattern

原型模式

原型模式

目標

以一個存在的對象為模板創建一個新的對象。

何時使用

  1. 新建對象的初始化過程非常昂貴,所以用克隆的方式。
  2. 希望創建一樣的對象。
  3. 對象中的狀態是有限的。
  4. 當要實例化的類是在運行時刻指定時,例如,通過動態裝載。
  5. 當一個系統應該獨立于它的產品創建,構成和表示時。

舉例

1、資源優化場景。 2、類初始化需要消化非常多的資源,這個資源包括數據、硬件資源等。 3、性能和安全要求的場景。 4、通過 new 產生一個對象需要非常繁瑣的數據準備或訪問權限,則可以使用原型模式。 5、一個對象多個修改者的場景。 6、一個對象需要提供給其他對象訪問,而且各個調用者可能都需要修改其值時,可以考慮使用原型模式拷貝多個對象供調用者使用。

代碼

由于JavaScript是基于原型的語言,所以內置了原型模式。

var myCar = {
 
  name: "Ford Escort",
 
  drive: function () {
    console.log( "Weeee. I'm driving!" );
  },
 
  panic: function () {
    console.log( "Wait. How do you stop this thing?" );
  }
 
};
 
// Use Object.create to instantiate a new car
var yourCar = Object.create( myCar );
 
// Now we can see that one is a prototype of the other
console.log( yourCar.name );

總結

Object.create可以參考

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,923評論 18 139
  • 1大同小異的工作周報 Sunny軟件公司一直使用自行開發的一套OA (Office Automatic,辦公自動化...
    justCode_閱讀 1,181評論 0 3
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,251評論 25 708
  • 工廠模式類似于現實生活中的工廠可以產生大量相似的商品,去做同樣的事情,實現同樣的效果;這時候需要使用工廠模式。簡單...
    舟漁行舟閱讀 7,827評論 2 17
  • 好像是五六年前吧,阿皮有一次帶著十二分的喜訝之情對Ex-LG說:哇,我能聽懂交響樂啦!而且不會聽睡著了哦。這位一向...
    慢慢飛奔閱讀 888評論 4 1