【2】设计模式(工产模式+python代码)

理解

简单工厂模式:创建的产品不多,只要一个工厂类就可以完成,它不属于 GoF 的 23 种经典设计模式,它的缺点是增加新产品时会违背“开闭原则”。


工厂方法模式:是对简单工厂模式的进一步抽象化,其好处是可以使系统在不修改原来代码的情况下引进新的产品,即满足开闭原则。

优点有:

  • 用户只需要知道具体工厂的名称就可得到所要的产品,无须知道产品的具体创建过程创建和使用分离
  • 在系统增加新的产品时只需要添加具体产品类和对应的具体工厂类,无须对原工厂进行任何修改,满足开闭原则;

缺点是:

  • 增加了类的数量,当有成千上万个类型的产品时,就需要有成千上万个工厂类来生产这些产品。

代码实现

#男孩的特点
class Boy:
        def Feature(self, name, name_type):
                if name_type == 1:
                        return name+" 阳光活泼"
                elif name_type == 2:
                        return name+" 爱好学习"
                else:
                        return "不能进行生产"
#女孩特点
class Girl:
        def Feature(self, name, name_type):
                if name_type == 1:
                        return name+" 美丽大方"
                elif name_type == 2:
                        return name+" 热爱舞蹈"
                else:
                        return "不能进行生产"

#工厂
class Factory:
        #生产人类
        def Create_People(self, people_type):
                if people_type == "b":
                        return Boy()
                elif people_type == "g":
                        return Girl()
                else:
                        return None
if __name__=='__main__':
        factory = Factory()
        person_one = factory.Create_People('b');
        print("生产结果: ", person_one.Feature('mike', 2))

        person_one = factory.Create_People('g');
        print("生产结果: ", person_one.Feature('mike', 2))

做一个优秀的程序媛
原文地址:https://www.cnblogs.com/oytt/p/13614764.html