2013-04-12 110 views
1

我是C#的新手,我試圖編寫一個輪盤模擬器。我試圖模擬真實的世界,你有一個輪子和一個賭徒,而賭徒轉動輪子。在面向對象編程中,這意味着從不同的對象調用另一個對象上的方法。下面的代碼是否在C#中以正確的方式繞過輪子?在對象上調用方法

在此先感謝

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

namespace Test 
{ 
    class Program 
     { 
     static void Main(string[] args) 
     { 
      Wheel luckyWheel = new Wheel(); 
      Croupier niceLady = new Croupier(); 
      niceLady.SpinWheel(luckyWheel); 
     } 
    } 

    class Wheel 
    { 

     public void Spin() 
     { 
      Console.WriteLine("Wheel Spun"); 
     } 
    } 

    class Croupier 
    { 
     public void SpinWheel(Wheel spinMe) 
     { 
      spinMe.Spin(); 
     } 

    } 
} 
+2

你有什麼問題? –

+0

[代碼評論](http://codereview.stackexchange.com/)將是這類問題的更好地方。 – publicgk

+0

偏離主題,屬於http://codereview.stackexchange.com/ –

回答

1

是的,它是一個開始正確的。我建議你將類分成不同的.cs文件。

0

是的,這是正確的做法,因爲您的兩個班級都在同一個程序集中,您可以聲明內部方法Spin()

2

是的,這是正確的,也是一種很好的方法來做這些事情,因爲你的代碼變得可測試。 當你有功能在一個類中Wheel執行人的其他人的功能Croupier,...

+1

+1可測試性 – CloudyMarble

0

一個更好的方式來做到這將是當你創建該類的車輪傳遞到快遞。構造函數然後將車輪參考存儲在一個字段中,然後當您旋轉車輪時,副駕駛員可以通過本地字段訪問車輪。

像這樣:

class Program 
{ 
    static void Main(string[] args) 
    { 
     Wheel wheel = new Wheel(); 
     Croupier croupier = new Croupier(wheel); 
     croupier.SpinWheel(); 
    } 
} 

class Wheel 
{ 
    public void Spin() 
    { 
     Console.WriteLine("Wheel Spun"); 
    } 
} 

class Croupier 
{ 
    private Wheel wheel; 

    public Croupier(Wheel wheel) 
    { 
     this.wheel = wheel; 
    } 

    public void SpinWheel() 
    { 
     wheel.Spin(); 
    } 
} 
-1

可以提高它作爲亞當ķ院長指出,這導致您使用策略模式由dotFactory here作爲解釋。

相關問題