下面是一个完整的C#实现案例:
public interface IAnimal
{
void Speak(;
}
然后,我们定义两个实现该接口的类:
public class Dog : IAnimal
{
public void Speak(
{
Console.WriteLine("狗说:汪,汪";
}
}
public class Cat : IAnimal
{
public void Speak(
{
Console.WriteLine("猫说:喵。";
}
}
接下来,我们定义一个工厂类,该类根据传入的参数创建相应的对象:
public class AnimalFactory
{
public IAnimal GetAnimal(string animalType
{
switch (animalType.ToLower(
{
case "dog":
return new Dog(;
case "cat":
return new Cat(;
default:
throw new ArgumentException("无效动物型";
}
}
}
最后,我们可以使用工厂类来创建对象:
AnimalFactory animalFactory = new AnimalFactory(;
IAnimal dog = animalFactory.GetAnimal("dog";
dog.Speak(; // 输出:狗说:汪汪
IAnimal cat = animalFactory.GetAnimal("cat";
cat.Speak(; // 输出:猫说:喵
在这个例子中,我们使用工厂类来创建不同类型的动物对象,而不需要暴露对象的创建逻辑。这使得我们可以轻松地添加新的动物类型,而不需要修改现有的代码。