排序算法 这篇博文主要讲解一下主流的几大排序算法 选择排序 思路 选择排序应该是这么多排序算法中最简单的一种排序算法了,主要思路是找到数组中最小的元素,其次,将它和数组的第一个元素交换位置(如果第一个元素就是最小的元素就和自己交换)。再次,在剩下的元素中重复此行为。 时间复杂度:O(n^2) 特点 ...
分类:
编程语言 时间:
2020-06-20 00:44:40
阅读次数:
55
##状态模式: 状态模式(State),当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。 状态模式主要解决的是当一个控制对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。(面向对象设计其实就是希望做到代码的责 ...
分类:
其他好文 时间:
2020-06-19 23:05:51
阅读次数:
72
##命令模式: 命令模式(Command)(行动(Action)模式或交易(Transaction)模式。),是一种数据驱动的设计模式,它属于行为型模式,将一个请求封装成一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或者记录请求日志,以及支持可撤销的操作。 命令模式是对命令的封装。命令 ...
分类:
其他好文 时间:
2020-06-19 22:45:25
阅读次数:
55
一、理解策略模式 在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。 在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。 举一个例子, ...
分类:
其他好文 时间:
2020-06-19 12:14:53
阅读次数:
48
1、行为驱动环境搭建: 行为驱动:Behavie 断言:Pyhamcrest 环境语言:Python 框架:Selenium 安装: 1 2 3 pip install behave pip install pyhamcrest 我们需要新建features包,在该包下要包含至少一个.feature ...
分类:
编程语言 时间:
2020-06-18 23:18:54
阅读次数:
80
一、概述 当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知依赖它的对象。观察者模式属于行为型模式。 意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 主要解决:一个对象 ...
分类:
其他好文 时间:
2020-06-18 21:56:57
阅读次数:
85
大数据时代,多数的web或app产品都会使用第三方或自己开发相应的数据系统,进行用户行为数据或其它信息数据的收集,在这个过程中,埋点是比较重要的一环。埋点收集的数据一般有以下作用: 1. 驱动决策:ABtest、漏斗优化、用户增长、bug修复、精准营销、流失用户预警 2. 驱动产品智能:智能推荐(千 ...
分类:
其他好文 时间:
2020-06-18 19:09:40
阅读次数:
112
访问者模式是一种较为复杂的行为型设计模式,它包含访问者和被访问元素两个主要组成部分,这些被访问的元素具有不同的类型,且不同的访问者可以对其进行不同的访问操作 模式动机 对于系统中某些对象,它们存储在同一个集合中,且具有不同的类型。对于该集合中的对象,可以接受一类称为访问者的对象来访问,不同的访问者其 ...
分类:
其他好文 时间:
2020-06-18 16:14:27
阅读次数:
62
1.信号的概念 信号是UNIX和Linux系统响应某些条件而产生的一个事件,接收到该信号的进程会相应地采取一些行动。通常信号是由一个错误产生的。但它们还可以作为进程间通信或修改行为的一种方式,明确地由一个进程发送给另一个进程。一个信号的产生叫生成,接收到一个信号叫捕获。 1)信号是在软件层次上对中断 ...
分类:
系统相关 时间:
2020-06-17 20:22:28
阅读次数:
63
策略(Strategy)模式的定义:该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。 说的通俗一点:在现实生活中常常遇到实 ...
分类:
其他好文 时间:
2020-06-17 12:34:53
阅读次数:
60