2022年第04周。 这一周Python语言学习,记录如下。
设计模式是解决特定问题的解决方案。
设计模式的优点:
为了更好地认识设计模式,我们先理解这些术语。
GoF在他们的设计模式书籍《Design Patterns: Elements of Reusable Object-Oriented Software》中讲到了23种设计模式,分为三类。
模式的分类主要基于对象的创建、软件应用程序中类和对象的构造方式,还涉及对象之间的交互方式。
创建型模式的性质。
结构型模式的性质。
行为型模式的性质。
设计模式的学习和理解,需要我们对面向对象编程OOP有一定的认识。 Python语言学习:面向对象编程,这篇文章介绍OOP的基本知识。
面向对象设计原则,有利于我们深入学习和理解设计模式。遵循和应用好这些原则,可以让我们软件架构、设计和实现更健壮、稳定、灵活、强大。
开放/封闭原则,类和对象及其方法对于扩展来说,是开放的;对于修改来说,是要封闭的。 这个原则的优点。
控制反转原则,高层级的模块不应该依赖于低层级的模块,它们应该依赖于抽象。任何两个模块都不应以紧密的方式相互依赖。 这个原则的优点。
接口隔离原则,客户端不应该依赖于它们不需要使用的接口。 这个原则的优点。
单一职责原则,类的职责单一,引起类变化的原因单一。 这个原则的优点。
替换原则,派生类必须能够完全取代基类。
单例设计模式是最简单和最著名的一种创建型设计模式。
单例设计模式意图:
单例设计模式应用场景:
单例模式参考代码。
class Singleton(object):
def __new__(cls, *args, **kwargs):
if not hasattr(cls, "instance"):
cls.instance = super().__new__(cls)
return cls.instance
s = Singleton()
print("Object created", s)
s1 = Singleton()
print("Object created", s1)
运行结果