在C#中,工厂模式是一种创建型设计模式,用于在不指定具体类的情况下创建对象。为了确保对象实例只能由工厂类创建,可以将对象的构造函数设为私有,并在工厂类中提供一个静态方法来创建对象。这样,外部代码无法直接访问构造函数,只能通过工厂类的静态方法来创建对象。
以下是一个简单的示例:
public class MyClass
{
private MyClass()
{
// 构造函数设为私有,只能在工厂类中创建对象
}
public static MyClass Create()
{
return new MyClass();
}
}
public class MyFactory
{
public static MyClass CreateMyClass()
{
return new MyClass();
}
}
public class Program
{
static void Main(string[] args)
{
MyClass obj1 = MyClass.Create(); // 正确的创建方式
MyClass obj2 = new MyClass(); // 编译错误,无法访问私有构造函数
MyClass obj3 = MyFactory.CreateMyClass(); // 通过工厂类创建对象
}
}
在这个示例中,MyClass
的构造函数被设为私有,只能通过Create()
静态方法来创建对象。MyFactory
类提供了一个CreateMyClass()
静态方法,用于创建MyClass
对象。在Main()
方法中,我们可以通过MyClass.Create()
或MyFactory.CreateMyClass()
来创建MyClass
对象,但是无法直接使用new
关键字创建对象。
这种方式可以有效地确保对象实例只能由工厂类创建,并防止外部代码直接访问构造函数。
领取专属 10元无门槛券
手把手带您无忧上云