YaPiBlog


You look look you one day day de

设计模式-结构型-外观模式

定义 又叫门面模式,提供了一个统一的接口,用来访问子系统中的一群接口 外观模式定义了一个高成接口,让子系统更容易使用 类型:结构型 使用场景: 子系统越来越复杂,增加外观模式提供简单调用接口 构建多层系统调用,利用外观对象作为每层的入口,简化层间调用 优点: 简化调用过程,无须了解深入子系统 减少系统依赖,松散耦合 更好的划分访问层次 复合...

设计模式-原型模式

基础定义 指原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 不需要知道任何创建的细节,不调用构造函数 类型:创建型 可以通过克隆的方式破坏单例模式 使用场景 类初始化消耗较多资源 new产生的一个对象需要非常繁琐的过程 构造函数比较复杂 循环体中产生大量对象 优点: 简化过程 缺点: 必须配置克隆方法(重写Objec...

设计模式-建造者模式

基础定义 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示,使用多个简单的对象一步一步构建成一个复杂的对象 用户只需指定需要建造的类型就可以得到它们,建造过程及细节不需要知道 创建型 使用场景: 如果一个对象有非常复杂的内部结构(属性) 想把复杂对象的创建和使用分离 优点: 封装性好,创建和使用分离 结偶 缺点: ...

设计模式-抽象工厂

基础与定义 抽象工厂模式提供一个创建一些列相关或相互依赖对象的接口 无须指定他们具体的类 类型:创建型 适用场景 客户端不依赖产品实例实现等细节 强调一系列相关产品对象(属于同一产品族)一起适用创建对象需要大量重复的代码 提供一个产品类的库,所有的产品以同样的接口出现,从而使客户端不依赖于具体实现 优点: 将一个系列的产品族统一到一起创建 抽象...

设计模式-工厂方法

基础定义 定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类。 工厂方法让类的实例化推迟到子类中运行 类型:创建型 使用场景: 创建对象需要大量重复代码 客户端(应用层)不依赖于产品类实例如何被创建、实现等细节 通过其子类来指定创建哪个对象 优点: 用户只需要关心所需产品对应的工厂 复合开闭原则 缺点: 类的个数容易过多,...

设计模式-简单工厂

基础定义 由一个工厂对象决定创建出哪一种产品类实例 类型:创建型,但不属于GOF23种设计模式 使用场景: 工程类负责创建的对象比较少 客户端只知道传入工厂类的参数,对于如何创建对象不关心 优点: 只需要知道传入的参数不需要知道类的信息,无须知道其创建的细节 缺点: 增加新的产品需要修改工厂类的判断逻辑,违背开闭原则 源码实例 Ca...

设计原则

分类 开闭原则 (最重要的原则,所有原则的基础) 依赖倒置原则 单一职责原则 接口隔离原则 迪米特法则(最少知道) 里氏替换原则 合成/复用原则(组合复用原则) 开闭原则 定义 一个软件实体如类、模块和函数应该对扩展开放,对修改关闭 用抽象构建框架,用实现扩展细节 优点:提高软件系统的可复用性和可维护性 例 service 中有A、B、C三种方法...

Go语言圣经(二)数据类型

类型分类 基础类型 (数字、字符串、布尔类型) 复合类型 (数组、结构体) 引用类型 (指针、切片、字典、函数、通道) 接口类型 数字类型 无符号整形:int8、int16、int32、int64 有符号整形:uint8、uint16、uint32、uint64 unicode字符rune类型是和int32等价的整形。byte也是uint8类型的等价类型 int类...

Go语言圣经(一)基础知识

命令行参数 程序的命令行参数可从os包的Args变量获取;os包外部使用os.Args访问该变量 os.Args变量是一个字符串(string)的切片(slice) os.Args的第一个元素,os.Args[0],是命令本身的名字;其它的元素则是程序启动时传给它的参数。s[m:n]形式的切片表达式,产生从第m个元素到第n-1个元素的切片,下个例子用到的元素包含在os.Args[1:l...

Mysql索引及B树和B+树区别

定义 索引 索引本质是对数据的简化(由地址值代替真实值)排序,索引自身不小,也就不可能全部存储在内存中,因此索引 也通常以索引文件的形式存储在磁盘中 其次,索引为了维持自身指向的有效性,也要随真实数据的增删改发生改变(无效数据,新增数据,越来越臃肿) 也就是——索引查询会随数据量增加变的越来越慢 最后,仍是因为维持索引的有效性,那么就会在真实数据更新操作的同时更新索引指向,...