UML类图

代码实现
public abstract class Animal
{
public abstract void Run();
}
public class Dog : Animal
{
public override void Run()
{
Console.WriteLine("Dog was running...");
}
}
public class Cat : Animal
{
public override void Run()
{
Console.WriteLine("Cat was running...");
}
}
public abstract class Factory
{
public abstract Animal CreateAnimal();
}
public class DogFactory:Factory
{
public override Animal CreateAnimal()
{
return new Dog();
}
}
public class CatFactory : Factory
{
public override Animal CreateAnimal()
{
return new Cat();
}
}
Python实现工厂方法
class Animal:
def Print(self):
raise NotImplementedError("Abstract")
class Cat(Animal):
def Print(self):
print("this is cat")
class Dog(Animal):
def Print(self):
print("this is dog")
class AnimalFactory:
def GetAnimalFactory(self):
raise NotImplementedError("Abstract")
class CatFactory(AnimalFactory):
def GetAnimalFactory(self):
return Cat()
class DogFactory(AnimalFactory):
def GetAnimalFactory(self):
return Dog()
cat=CatFactory().GetAnimalFactory()
dog=DogFactory().GetAnimalFactory()
cat.Print()
dog.Print()
本文通过C#和Python代码展示了工厂模式的应用。定义了抽象基类Animal和Factory,派生出具体的Dog/Cat类及对应的工厂类。通过工厂创建具体对象,实现了多态性和扩展性。
9594

被折叠的 条评论
为什么被折叠?



