面是一个简单的 C# 相机通用模块工厂模式的示例代码:
首先,我们需要定义一个相机接口,它包含了相机的基本操作方法:
public interface ICamera
{
void Open();
void Close();
void TakePicture();
}
接下来,我们可以定义具体的相机类,例如黑白相机、彩色相机等:
public class BlackAndWhiteCamera : ICamera
{
public void Open()
{
Console.WriteLine("Black and white camera opened.");
}
public void Close()
{
Console.WriteLine("Black and white camera closed.");
}
public void TakePicture()
{
Console.WriteLine("Taking a black and white picture.");
}
}
public class ColorCamera : ICamera
{
public void Open()
{
Console.WriteLine("Color camera opened.");
}
public void Close()
{
Console.WriteLine("Color camera closed.");
}
public void TakePicture()
{
Console.WriteLine("Taking a color picture.");
}
}
然后,我们可以定义一个相机工厂类,它可以根据输入的参数来决定创建哪种类型的相机对象:
public class CameraFactory
{
public static ICamera CreateCamera(string cameraType)
{
switch (cameraType.ToLower())
{
case "bw":
return new BlackAndWhiteCamera();
case "color":
return new ColorCamera();
default:
throw new ArgumentException("Invalid camera type.");
}
}
}
最后,我们可以使用工厂类来创建相机对象:
ICamera bwCamera = CameraFactory.CreateCamera("bw");
bwCamera.Open();
bwCamera.TakePicture();
bwCamera.Close();
ICamera colorCamera = CameraFactory.CreateCamera("color");
colorCamera.Open();
colorCamera.TakePicture();
colorCamera.Close();
输出结果如下:
Black and white camera opened.
Taking a black and white picture.
Black and white camera closed.
Color camera opened.
Taking a color picture.
Color camera closed.
通过上述示例代码,我们可以看到工厂模式的实现过程,它可以根据输入的参数来创建相应的相机对象,从而实现了相机通用模块的设计。