使用裝飾 decorator

2021-07-25 08:33:27 字數 871 閱讀 7113

如果還沒搞懂什麼是service, 依賴注入, 那你要先看看這些東西, 否則下面看起來有困難

裝飾, 在已有的功能上錦上添花

我有乙個module a依賴於另外乙個module b。 module b有個service mail, 這個服務提供 兩個方法 setreceiver 和 setbody 分別用來指定郵件的收件人和郵件的內容。 但是在 module a 使用mail服務的時候, 我希望還可以指定抄送的人。 這個時候我就可以在已有 的service上擴充套件下(裝飾下)加個addcc的方法。

var

mail

=function();

mail

.prototype

.setreceiver

=function

(receiver);

mail

.prototype

.setbody

=function

(body);

angular

.module

('a',).

service

('mail'

,mail

);

angular

.module

('b',[

'a']).

config

(function

($provide);

return

$delegate

;});}).

controller

('testctrl'

,function

($scope

,mail

));

demo

裝飾模式 Decorator

裝飾模式 decorator 動態地給乙個物件新增一些額外的職責,就增加功能來說,裝飾模式比生成子類更加靈活。其中component定義了乙個物件介面,可以給這些物件動態的新增職責 concretecomponent是定義了乙個具體的物件,也可以給這個物件新增一些職責 decorator裝飾抽象類,...

Decorator 裝飾模式

定義 動態的給乙個物件新增一些輔助功能,而不改變原有的類。案例 假如現在有個文字控制項textview,它可以在螢幕上顯示文字,但當文字過多的時候,乙個螢幕顯示不下,這時就需要給它新增乙個滾動條。給乙個視窗加乙個滾動條不是原有的功能,而是額外的功能,比如還可以加乙個黑色外框,而且這些操作不是為某乙個...

裝飾模式 Decorator

裝飾模式 decorator 1.裝飾模式 decorator 的定義 又名包裝 模式,裝飾模式以對客戶端透明的方式擴充套件物件的功能,是繼承關係的乙個替代方案。2.裝飾模式以對客戶端透明的方式動態的給乙個物件附加上更多的責任。換言之客戶端並不會覺的物件在裝飾前和裝飾後有什麼區別。3.裝飾模式可以在...