iT邦幫忙

DAY 6
4

已廢除請轉移至(用MAN架構打造超人般的網頁應用程式:復仇者聯盟)系列 第 4

用MAN架構打造超人般的網頁應用程式-Day 12:AngularJS - Service

昨天介紹了Factory這個好用的AngularJS共用工廠後,今天要介紹一個有點類同的Services,來讓大家認識。
用MAN架構打造超人般的網頁應用程式系列文章
用MAN架構打造超人般的網頁應用程式系列文章

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

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

Benefits of the Singleton Pattern

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

Service VS Factory

from

Service範例

線上範例

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

結語

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


上一篇
用MAN架構打造超人般的網頁應用程式-Day 09:AngularJS - Directives
系列文
已廢除請轉移至(用MAN架構打造超人般的網頁應用程式:復仇者聯盟)4

2 則留言

0
Blackie Tsai
iT邦新手 5 級 ‧ 2013-09-27 14:39:21

暈還有18天要更努力了

我要留言

立即登入留言