摘要:
1.冒泡排序 基本思想:(从小到达排序)-把最大的不断向右边移动 时间复杂度:O(N2) 时间复杂度:O(N2) 空间复杂度:O(1) 2.快速排序 时间复杂度:最坏:O(n2) 最好:O(nlogn) 空间复杂度:最坏: O(n) 最好:O(logn) 2.1随机化快速排序 由于快速排序在输入为顺 阅读全文
摘要:
7.桥接设计模式 1.概述 场景 车子有很多分类-公交车、小车、大车 路有很多分类 城市道路、乡村道路、高速公路 我们需要通过代码实现车在公路上跑的情形 桥接设计模式 这里有两个维度车辆和路面,桥接设计模式希望把这两个部分的设计进行分离 1.Car有一个基础类,其他类型的车继承这个类并进行扩展 2. 阅读全文
摘要:
1.概述 适配器设计模式针对如下情况: 客户需要用某个接口,但是能提供服务的接口没有实现那个接口。 客户端只能使用某种接口 客户端是台灯,接口是双孔插座 服务端 服务类是三孔插座 适配器类是服务类和客户端中间的一个桥接类 插线板 2.代码 适配器模式的分类: 类适配器 通过继承实现 对象适配器--通 阅读全文
摘要:
5.策略设计模式 1.概述 实现某一功能往往有多种策略(算法),通常的实现方式是把所有的策略封装在一个策略类中,客户端通过策略类的对象调用不同的策略算法,这种设计方式的缺点是随着策略数量的增加策略类会变得很复杂,而且如果增加新的策略必须修改原有的代码 2.策略设计模式的思想 1.所有的策略的公共方法 阅读全文
摘要:
4.对表进行分组 a.使用Group By应该注意以下几点 1.只能写在Select语句中(如果有where子句需要写在where子句之后) 2.Group By的结果是无序的 3.where 子句中不能使用聚合函数 4.Group By的筛选数据条件应该写在HAVING子句中 b.Group by 阅读全文
摘要:
4.装饰器设计模式 1.概述 在不改变原类文件和使用继承情况下,动态的扩展一个类的功能 最常见的使用情况:Java IO 注意事项: 1.装饰对象(外部)和真实对象(内部)有相同的接口 2.装饰对象包含一个真实对象的引用 3.装饰对象接受客服端发送的请求并把请求转发给真实的对象 2.代码 黑心商家需 阅读全文
摘要:
3.外观设计模式 a.概述 一个系统往往需要向外提供多种服务,为了降低系统与外部的耦合程度,需要提供一个公共的入口 图1.外观设计模式的结构图 b.代码 /** * Created by yangyun on 2017/2/24. */ class MoudleA{ public void disp 阅读全文
摘要:
2.工厂设计模式 a.工厂设计模式分类 1.简单工厂设计模式 2.工厂方法设计模式 3.抽象工厂设计模式 b.简单工厂方法 1.概述 工厂:多条产品线,来生产不同的产品(属于同一类,不同类的产品看作多累) 工厂方法:根据传入的参数生产对应的产品 产品:有公共的基接口 2.代码 水果生产厂家 //产品 阅读全文
摘要:
1.单例设计模式 a.概述 单例设计模式是指某个类只有一个实例的设计模式。 特点: 1.构造函数是private修饰的,目的是防止用户调用构造函数创建对象 2.类的内部有静态工厂方法,返回该类的唯一实例。 3.类的唯一实例被private staic修饰的引用所修饰 1.构造函数是private修饰 阅读全文
摘要:
本章重点 1.视图 2.子查询 3.关联子查询 1.视图 Mysql视图 从Mysql的一个表或多个表导出的表,是一种虚拟的表 视图表中的数据和它所依赖的表会保持同步 原表发生改变,视图的数据也会发生改变 使用视图的原因 1.安全性,可以隐藏(不显示)表格中的敏感信息。 2.可以使得复杂的查询易于理 阅读全文