python 二十三种设计模式

python 二十三种常见的设计模式

设计模式是前人总结出来的解决方案, 针对于日常生活中出现的某一类问题.
如果你想提高自己的优化代码能力,或只是单纯的理解python 设计模式, 可以仔细阅读这篇文章,了解一下设计模式的代码和用处。

第一章 单例模式

什么是单例模式?

单例模式是在定义一个类的时候做了对应的操作,保证通过这个类建立的多个对象只有一个实例,在全局中只有一个访问点.
比如你创建了一个书写类,你可以用它创建一个实例来书写作文和小说,a程序要用它来写作文,这时候突然b程序要用它写小说,不好意思a已经用了,等a用完,b才能用.大家可能觉得这个看起来好像比原来傻啊,原来是一个类可以生成多个实例.a在用,b要用,在new一个新实例不就好了,可是如果这个类生成的对象很大很耗资源呢?(例子:数据库对象)
所以单例模式的优点就出来了,
1.节省内存空间
2.避免多重占用,易于控制
3.全局对象,类似全局变量
那缺点也不言而喻:1.扩展困难 2.资源瓶颈毕竟自己限制了自己

class Singleton:
    def __new__(cls, *args, **kwargs):
       # 判断要生成的实例是否有_instance属性,没有调用父类object(万物皆对象)的new方法生成实例,有 返回已生成的实例
        if not hasattr(cls,"_instance"):
            cls._instance = super(Singleton,cls).__new__(cls)

        return cls._instance

#接下来写的类继承单例类即可使用单例模式的效果
class writeQuote(Singleton):
    def __init__(self,quote):
        self.quote =quote

    def print_quote(self):
        print(self.quote)


a =writeQuote("a")
b= writeQuote("b")
a.print_quote()
b.print_quote()

output:
b
b

你可能感兴趣的:(python,算法,笔记,python,设计模式,单例模式)