[MAN鐵人賽]Day 12:AngularJS - Service

摘要:[MAN鐵人賽]Day 12:AngularJS - Service

前言

昨天介紹了Factory這個好用的AngularJS共用工廠後,今天要介紹一個有點類同的Services,來讓大家認識。

Service介紹

當你需要做出一個共用服務時,你可以透過Servcie的方式來讓大家一起呼叫這個util或是tool api,你就可以透過Registering客制service的方式來讓大家使用,而所有的angular services都是以singleton的模式運行

有兩種Registering的方式如下:

1:

var myModule = angular.module('myModule', []);
myModule.factory('serviceId', function() {
    var shinyNewServiceInstance;
    return shinyNewServiceInstance;
});

2:

angular.module('myModule', [], function($provide) {
$provide.factory('serviceId', function() {
    var shinyNewServiceInstance;
    return shinyNewServiceInstance;
});
});

Singleton pattern

單一實體模式,保證一個類別只有一個實例(Instance),並提供一個訪問(visit)這個實例的方法。

以下面的例子來說明:

from

Singletons

上面的教學講義統一透過一個老師來教授給學生,學生如果要學習該講義的話,一定是向該名老師學習(類似天王XX補習班,講義不對外開放,只有上課的學生可以聽老師本人講過)。

Benefits of the Singleton Pattern

  • 節省使用資源,可避免一些如記憶體空間超量的問題.
  • 在確保只有一個流程運作的情況,這方便開發者去找尋錯誤與管理者做管控,並可確保流程上的執行。

Service VS Factory

from

Service範例

JS Bin

其實Service的用法與Factory一樣簡單,只要Registering之後就可以直接使用了

結語

透過Service你可以創造出可共用的工具類別,且確保該類別在此APP中僅有一項,可避免過多的資源浪費,Day 12 over!


如果覺得文章還不錯麻煩請在文章最上面給予推薦,你的支持是小弟繼續努力產出的動力!