JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » .Net Framework » MS Framework (WPF,WCF,LINQ)  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 Unity中IOC的簡單應用
hugo_Ephebe





發文: 6
積分: 0
於 2008-05-17 22:42 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
Unity是微軟的新作,不知微軟哪根筋想通了,也來搞IOC。我還沒有深入研究,感覺就是很單純的IOC。請去http://www.codeplex.com/unity下載Unity Application Block 1.0.msi。參考是加入Microsoft.Practices.Unity。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
public enum Finger 
   {
       scissors,
       paper,
       rock
   }
 
   //猜拳遊戲的介面
   public interface IFingerGuessing
   {
       Finger NextFinger();
   }
 
   //猜拳遊戲的策略
   public interface IGuessingStrategy
   {
       Finger NextFinger();
   }
 
   //猜拳遊戲的實作
   public class FingerGuessing : IFingerGuessing
   {
       private IGuessingStrategy _oneGuessing;
       public FingerGuessing(IGuessingStrategy oneGuessing) 
       {
           _oneGuessing = oneGuessing;
       } 
 
       public Finger NextFinger() 
       {
           return _oneGuessing.NextFinger(); 
       }
    }
 
    //策略的實作
    public class FirstStrategy : IGuessingStrategy 
    {
        private Finger _myFinger;
        public FirstStrategy(string myFinger) 
        {
            _myFinger = (Finger)Enum.Parse(typeof(Finger),myFinger);
        }
 
        public Finger NextFinger() 
        {
            return _myFinger;
        }
    }

同一個啦。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
static void Main(string[] args)
    {
        //建立容器
        IUnityContainer myContainer = new UnityContainer();
 
        //這個叫動態設定,就是設定FirstStrategy的建構式要傳入rock
        myContainer.Configure<InjectedMembers>()
           .ConfigureInjectionFor<FirstStrategy>(
            new InjectionConstructor("rock")
          );
 
        //加入组件
        myContainer.RegisterType<IGuessingStrategy, FirstStrategy>();
        myContainer.RegisterType<IFingerGuessing, FingerGuessing>();
 
        //取得组件
        IFingerGuessing startGame = myContainer.Resolve<IFingerGuessing>();
 
        //使用组件
        Console.Write(startGame.NextFinger().ToString()); 
 
        Console.ReadLine();
    }

設定檔沒有,因為我們用了動態設定。

TestIOCByUnity.rar (171.9k)


reply to postreply to post
話題樹型展開
人氣 標題 作者 字數 發文時間
2143 Unity中IOC的簡單應用 hugo_Ephebe 1889 2008-05-17 22:42
» JWorld@TW »  .Net Framework » MS Framework (WPF,WCF,LINQ)

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8