zoukankan      html  css  js  c++  java
  • Learn_Day16 设计模式:单例模式

    单例模式:只有一个实例
    当所有实例都封装同一个数据时适用单例模式
     
    # 单例模式
    class P:
        def __init__(self):
            self.name = 'xxx'
            self.age = 'xx'
    
        def f1(self):
            print (self.name, self.age)
            pass
    
    
    xx = P()
    xx.f1()
    

    举例说明:

    # 创建连接池
    class ConncetionPool:  # ConncetionPoo连接池
        __obj = None  # 创建私有字段,用于判断
    
        def __init__(self):
            pass
    
        @staticmethod  # 静态方法
        def get_obj():
            if ConncetionPool.__obj:  # 判断__obj
                return ConncetionPool.__obj  # 返回__obj
            else:
                ConncetionPool.__obj = ConncetionPool()  # 创建对象并赋值给__obj
                return ConncetionPool.__obj  # 返回__obj
    
    
    pool1 = ConncetionPool.get_obj()  # 执行类的静态方法
    print(pool1)
    pool2 = ConncetionPool.get_obj()  # 执行类的静态方法
    print(pool2)
    pool3 = ConncetionPool.get_obj()  # 执行类的静态方法
    print(pool3)
    
    
    # for i in range(10):
    #     pool = ConncetionPool.get_obj()  # 执行类的静态方法
    #     print('去连接池', pool, '中获取一个连接')
    #     conn = pool.get_connection
    #     print(conn)
    
  • 相关阅读:

    2018.10.18 常用API部分测试题
    2018.10.18课堂笔记HashMap之前
    JavaScript 的 this 原理
    vue h5转换uni-app
    Vue.js 3.0 新特性预览
    ES6模块与CommonJS的区别
    同源策略和跨域问题
    一口气了解 babel
    媒体查询,移动端常见布局以及其他
  • 原文地址:https://www.cnblogs.com/grissom/p/6708215.html
Copyright © 2011-2022 走看看