• 【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))

    做一个优秀的程序媛
  • 相关阅读:
    c++------引用(左值与右值,引用一个数组,const限制)
    c++------智能指针,tuple多元数组
    c++中const和c中const区别
    c++新特性-------函数包装器,模板元加速
    c++新特性---lambda表达式
    c++新特性-收缩转换,二进制,constexpr,以及namespace&&inline
    Eureka 注册中心 和 Config中心 配置
    最近的日子-2019/8/12
    工作上的态度
    保持运动 对心情很重要
  • 原文地址:https://www.cnblogs.com/oytt/p/13614764.html
Copyright © 2020-2023  润新知