當我看完了前面比較常提到的實踐IoC之中的一方法是依賴注入(Dependence Injection),我也比較清楚這一塊,這個pattern算是比較清楚易懂了,他有點像是簡單版的Strategy pattern,說上簡單,其實應該說比較不複雜,其實在程式碼裡面,我們都常常不經意都會用到這些觀念.
我利用action script 3 去試試看Type - 2 的方式(這個方式比較正統點 因spring 很推薦使用)
1.
先設計你要用的interface
我選定的OS來當例子
package self.base
{
public interface Ios
{
function operating():void;
}
}
2. 實作Ios interface 的兩個類別 mac.as 和 window.aspackage self.abee
{
import self.base.Ios;
public class mac implements Ios
{
public function mac()
{
}
public function operating():void
{
trace("start mac");
}
}
}
package self.abee
{
import self.base.Ios;
public class windows implements Ios
{
public function windows()
{
}
public function operating():void
{
trace("start window");
}
}
}
3.設定一個給外部使用的介面去把依賴注入設定好
package self
{
import self.base.Ios;
public class OSObject
{
public var ios:Ios;
public function set dependenceOS(ios:Ios):void
{
this.ios=ios;
}
}
}
4. test吧
package
{
import flash.display.Sprite;
import self.OSObject;
import self.abee.mac;
import self.abee.windows;
public class testDI extends Sprite
{
public function testDI()
{
var obj:OSObject=new OSObject;
obj.dependenceOS=new windows;
obj.ios.operating();
}
}
}
有沒有很簡單 ~~
這就是大家常常掛在嘴巴再說的 注入-依賴
type - 1 , type -3 大同小異 (只是注入的點不一樣)
沒有留言:
張貼留言