搜索
写经验 领红包

简单工厂模式和工厂方法模式和抽象工厂(简单工厂和工厂方法和抽象工厂)

在生活中,很多人可能想了解和弄清楚简明设计模式教程——工厂方法、简单工厂和抽象工厂的相关问题?那么关于简单工厂模式和工厂方法模式和抽象工厂的答案我来给大家详细解答下。

简单工厂模式和工厂方法模式和抽象工厂(简单工厂和工厂方法和抽象工厂)

工厂方法模式

工厂方法使用函数封装对象的声明,隐藏了创建对象的所有细节。一个类对应一个工厂方法。

class Animal():def shout(self):print(&39;)class Cat(Animal):def shout(self):return &39;class Dog(Animal):def shout(self):return &39;def createCat():return Cat()def createDog():return Dog()cat = createCat()cat.shout()dog = createDog()dog.shout()

简单工厂模式

简单工厂封装同一族类的对象声明,通过函数参数指定具体的类。不但大大简化了分别为每个类编写工厂方法的繁琐过程,并且可以实现参数化创建对象,增加了灵活性。

def createPet(type=&39;):if type == &39;:return Cat()elif type == &39;:return Dog()else:return Animal()for type in [&39;, &39;]:print(f&39;)运行结果:宠物cat的叫声是:喵!宠物dog的叫声是:汪!

工厂类/抽象工厂

工厂封装一组相关性强不同族系的对象的声明,这组对象共同实现特定的任务。工厂类表示不同的状态、风格、条件、环境等,工厂类底下的工厂方法则表示不同类的对象。工厂类为对象的统一管理、组织和划分提供强大的能力。

class PetFactory():def createPet(self):return Animal()def createFood(self):print(&39;)class DogFactory(PetFactory):def createPet(self):return Dog()def createFood(self):return &39;class CatFactory(PetFactory):def createPet(self):return Cat()def createFood(self):return &39;def createPetFactory(type=&39;):if type == &39;:return CatFactory()elif type == &39;:return DogFactory()else:return PetFactory()pet = &39;factory = createPetFactory(pet)print(f&39;)运行结果:宠物cat的叫声是:喵!它喜欢吃猫粮。

本文是简明设计模式教程系列之一,常用的设计模式有23种之多,接下来还有更多更精彩设计模式的介绍,欢迎评论、转发、收藏和关注,点击合集有更多内容。

简明设计模式教程——面向对象编程

温馨提示:通过以上关于简明设计模式教程——工厂方法、简单工厂和抽象工厂内容介绍后,相信大家有新的了解,更希望可以对你有所帮助。