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

    做一个优秀的程序媛
  • 相关阅读:
    linux安装navicat全程记录
    MySQL5.7.20报错Access denied for user 'root'@'localhost' (using password: NO)
    java中的异步处理和Feature接口(一)
    @Autowired注解与@Resource注解的区别与用法
    超详细MySQL安装及基本使用教程
    linux下mysql开启远程访问权限及防火墙开放3306端口
    mysql之my.cnf详解
    centos7 mysql 启动mysqld.service
    linux系统安装mysql数据库
    ExecutorService 的理解与使用
  • 原文地址:https://www.cnblogs.com/oytt/p/13614764.html
Copyright © 2020-2023  润新知