模板模式 本质 固定算法骨架 定义 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 用模板模式解决问题的思路 重复或者相似代码太多、扩展不方便,出现这些问题的原因在相似模块之间的实现是完全分开的、相互独立的,没有从整体上 ...
分类:
其他好文 时间:
2018-08-23 02:18:35
阅读次数:
178
在执行程序时为了提高性能,编译器和处理器常常会对指令做重排序。重排序分三种类型: 编译器优化的重排序。编译器在不改变单线程程序语义的前提下,可以重新安排语句的执行顺序。 指令级并行的重排序。现代处理器采用了指令级并行技术(Instruction-Level Parallelism, ILP)来将多条 ...
分类:
编程语言 时间:
2018-08-22 20:40:50
阅读次数:
251
★定义 在不改变原函数的调用方式的情况下,在函数前后添加功能 ★固定模式 ★学习步骤 1, 最简单的装饰器 1 # 简单的装饰器 2 import time 3 def timer(f): # 将被装饰的函数传进来 4 def inner(): 5 start_time = time.time() ...
分类:
编程语言 时间:
2018-08-19 23:52:46
阅读次数:
356
模板方法:当我们要完成在某一细节层次一致的一个过程或一系列步骤,但其个别步骤在更详细的层次上的实现可能不同时,我们通常考虑用模板方法模式来处理。 模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 模板方法模式 ...
分类:
其他好文 时间:
2018-08-18 17:38:19
阅读次数:
128
装饰器的作用:在不改变源代码和调用方式的情况下,实现功能的添加 (一)基础的装饰器(仅实现为函数添加功能) 功能实现: 为原函数添加计算运行时间的功能 测试结果如下图所示: (二)装饰器高潮版 情景实现为:在网站的登录过程中,一部分为本地登录(local),一部分为ldap登录,在判断完登录方式以后 ...
分类:
编程语言 时间:
2018-08-15 12:34:00
阅读次数:
186
1. 定义 模板方法是在一个方法中定义一个流程/算法的骨架,而其中某些步骤交由子类提供实现。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中某些操作的具体实现。 2. 应用场景 当多个对象的行为基本一致,每个对象都维护自己的一整套逻辑,对象之间又有完全相同的某些步骤代码,而逻辑又基本一致 ...
分类:
其他好文 时间:
2018-08-14 00:56:34
阅读次数:
214
前言 装饰模式也是一种结构型模式,主要是目的是相对于类与类之间的继承关系来说,使用装饰模式可以降低耦合度。JDK中有不少地方都使用到了装饰模式,例如Java的各种I/O流,javax.swing包中一些图形界面构件功能的增强等地方都运用了装饰模式。 装饰模式 定义 装饰模式的定义是:在不改变原类文件 ...
分类:
编程语言 时间:
2018-08-12 18:40:39
阅读次数:
172
首先说明一下特征值:设A是n阶方阵,如果存在 λ 和n维非零向量X,使 AX = λX ,则 λ 称为方阵A的一个特征值,X为方阵A对应于或属于特征值 λ 的一个特征向量。 AX = λX 的过程是一个从矩阵乘法到数乘操作的过程。数乘的实质是对向量X进行缩放,缩放因子为λ ,缩放只改变大小,不改变方 ...
分类:
其他好文 时间:
2018-08-12 10:26:53
阅读次数:
186
一、前言Python的列表(list)有两个排序方法:一种是内建的list.sort()方法,可以直接改变列表的内容:>>> list1 = [9,8,7,6,5]>>> list1.sort()>>> list1[5, 6, 7, 8, 9]另一个内建函数是sorted(),它的特点是不改变原列表... ...
分类:
编程语言 时间:
2018-08-11 18:12:46
阅读次数:
199
装饰器模式:动态地将责任附加到对象上,允许用户向现有对象添加新功能而不改变其结构。若要扩展功能,装饰器提供了比继承更有弹性的替代方案。 场景:假如有这样一个抽象装备类 然后实现一个武器类继承上面的装备类 一段时间后,装备增加了进阶,时装,强化等功能,这些功能都可以提升战斗力,现在希望计算提升后的战斗 ...
分类:
其他好文 时间:
2018-08-09 17:30:52
阅读次数:
114