我是C#的新手,我正在尝试编写一个roulett模拟器。我试图模拟真实的世界,你有一个轮子和一个庄家,而庄家旋转轮子。在面向对象编程中,这意味着从不同的对象调用另一个对象的方法。我通过方向盘的下面代码是否在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();
}
}
}
答案 0 :(得分:2)
是的,这是正确的,也是做这些事情的好方法,因为你的代码变得可以测试。
正如您在其他人Wheel
中的功能,执行者中的功能:Croupier
,...
答案 1 :(得分:1)
是的,一开始就是正确的。我建议你将类分成不同的.cs文件。
答案 2 :(得分:0)
是的,这是正确的方法,因为您的两个类都在同一个程序集中,您可以在内部声明方法Spin()
。
答案 3 :(得分: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();
}
}
答案 4 :(得分:-1)
你可以像Adam K Dean所说的那样改进它,这会引导你使用策略模式作为dotFactory here的解释。