python核心理念_《Python中级课程》所有核心概念和代码实例

Python核心概念Python特性 - 全局解释器锁GIL / 生成器 / 上下文管理器

系统级概念 - OS与线程调度

创建型设计模式 - 简单工厂 / 抽象工厂 / 原型模式 / 建造模式 / 单例模式 / 池模式 / 延迟验证

结构型设计模式 - 装饰器模式 / 适配器模式 / 组合模式 / 桥模式 / 外观模式 / 代理模式

行为型设计模式 - 观察者模式 / 访问模式 / 策略模式 / 状态模式 / 迭代器模式

创建型设计模式

创建性的设计模式抽象了实例化过程,它将系统中对象的创建、组合和呈现方式单独抽离出来。类的创建模式使用继承来改变类的创建过程,而对象的创建模式将把实例化过程委托给另外的对象。

随着系统越来越依赖使用对象组合而不是类继承的时候,创建模式变得非常重要。重点从一组固定的行为的硬编码转移到定义一组较小的基本行为,这些基本行为可以组合成任何数量的更复杂的行为。因此,创建具有特定行为的对象不仅需要实例化类那么简单。

在这些模式中有两个反复出现,第一种它们封装了系统中使用的具体类;第二种它们隐藏了如何创建和组合这些类。整个系统了解的只是抽象类定义的接口。因此,创建型模式给你提供了创建什么,谁来创建,如何创建,以及什么时候创建的灵活性。这在结构和功能上支持了差异很大的“产品”对象来配置系统,这种配置可以是静态的(即在编译时指定)或动态的(在运行时指定)。

有时创造性模式是竞关系手,例如在某些情况下,原型模式或抽象工厂都可以被选择使用,有时候它们又是互补的,比如构造模式可以使用其他模式任何之一来实现组件的构建。原型模式可以在其实现中使用单例模式。

许多创建型模式都可以通过使用单例模式来实现,比如抽象工厂模式,构建模式和原型模式。

结构型设计模式

结构模式关注的是如何组合类和对象以形成更大的组织结构。结构型类模式使用继承来组合接口或实现。一个简单的例子,考虑多重继承如何将两个或多个类混合到一个类中。结果是一个类组合了其父类的属性。这种模式对于使独立开发的类库然后协同工作特别有用。另一个例子是适配器模式的类组织形式。通常适配器使一个被适配接口与另一个接口保持一致,从而提供不同接口的统一抽象。适配器类通过从被适配类私有继承来实现这一点,然后适配器用被适配的接口来表达它的接口。

与结构型类设计模式不同的是,结构型对象模式描述是组合对象以实现新功能的一种方式。对象组合带来的灵活性来自于可以在运行时改变组合的能力,这是静态类组合所不能达到的。

组合模式是结构型对象模式的一种。它描述了如何为两种对象构建类的层次结构:原语的和组合的。组合对象允许将原语和其他组合对象组合成任意复杂的结构。在代理模式中,代理充当另一对象的代理或占位符。代理可以按照不同的方式使用,它可以充当远程地址空间中对象的本地代表,它可以表示按需加载的大型对象,它可以保护对敏感对象的访问。代理为对象的特定属性提供间接级别的访问,因此它可以限制、增强或更改这些属性。

享元模式定义了一种共享对象的结构。共享对象至少有两个原因:效率和一致性。享元模式专注于共享空间以提高空间效率。使用大量对象的应用程序必须注意每个对象的成本。通过共享对象而不是复制对象,可以节省大量开销。但对象只有在没有上下文相关状态的情况下才能共享,享元对象不能有这种状态。他们执行任务所需的任何附加信息只会在需要时传递给他们。在没有上下文相关状态的情况下,享元对象可以被自由共享。

然而享元模式定义了如何创建许多小的对象,外观模式则定义了如何使单个对象表示整个子系统。外观是一组对象的代表。外观的职责主要是转发消息给它所表示的对象。桥模式将对象的抽象与实现分离开来,以便可以独立地改变它们。

装饰器模式定义了如何动态地向对象添加功能。它递归地合成对象,可以无限的附加功能,还可以通过在一个装饰器对象中嵌套另一个装饰器对象来添加两个装饰,以获得额外的装饰。为了实现这一点,每个装饰器对象必须遵守其组件的接口,可以在接口之前或之后完成其装饰工作。

行为型设计模式

行为型模式关注的是算法和对象之间的职责分配。行为模式不仅描述对象或类的模式,还描述它们之间的通信模式。这些模式定义了在运行时难以跟踪的复杂控制流。它们将你的注意力从控制流转移到让你专注于物体相互连接的方式上。

行为类模式使用继承在类之间分配行为。包括两个这样的模式,模板方法是两种方法中更简单和更常见的方法。模板方法是算法的一个抽象定义。它逐步定义了算法的每一步,每一步激活一个抽象操作或者一个原语操作。子类通过定义抽象操作进一步充实算法。另一种行为类模式是解释器,它将语法表示为类层次结构,并将解释器实现为对这些类实例的操作。

行为对象模式使用对象组合而不是继承。

Python预告人工智能和机器学习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值