摘要:
概述 《设计模式》一书中对 “适配器模式” 的动机描述如下: 将一个类的接口转换成客户希望的另一个接口,适配器模式使得原本由于接口不兼容而不能一起工作的类可以一起工作 一般情况下的类结构图如下所示: 每个组件的介绍如下: Client:实际调用目标接口的对象 Target:当前设计的用于客户端调用的 阅读全文
摘要:
概述 《设计模式》一书中对单例模式的 “动机” 描述如下: 保证一个额类仅有一个实例,并提供一个访问它的全局访问点 一般情况下,为了避免资源的浪费,可以考虑将一些不可变类或者无状态类设计成单例 具体实例 在当下环境中,对于单例模式的实现方式主要有两种方式:饿汉式和懒汉式。一般来将,如果创建对象实例的 阅读全文
摘要:
概述 《设计模式》一书中对 “原型模式” 的意图描述如下: 用原型实例指定创建对象的种类,并通过拷贝对象的原型创建新的对象 貌似有点难懂,概括性地讲就是实现对不同类型对象的复制,而不需要知道他们的具体类型 一般情况下的类结构图如下图所示: 原型模式适用于以下场景: 当一个系统需要独立于它的产品创建、 阅读全文
摘要:
快速幂 如果希望求得一个数 $a$ 的 $b$ 次幂,一般情况下,暴力的做法就是从 $1$ 遍历到 $b$,每次遍历时都将结果乘上 $a$,得到最终结果。这种做法的时间复杂度为 $O(n)$,在实际应用中如果对性能要求不是特别高的话,这样也是可行的。一种更为高效的计算方式是根据计算机存储数据的方式, 阅读全文
摘要:
概述 《设计模式》中对工厂方法模式的意图描述如下: 定义一个创建对象的接口,让子类来决定实例化哪一个类。Factory Method 使得一个类的实例化延迟到子类 一般工厂方法模式的类结构图如下所示: 其中,每个组件的介绍如下: Product:产品实例对象的统一接口,及工厂方法创建的对象抽象 Co 阅读全文
摘要:
概述 《设计模式》中对抽象工厂(Abstract Factory) 模式的意图描述如下: 提供一个接口以创建一系列相关或相互依赖的对象,而无需指定它们具体的类 一般抽象工厂中的类结构如下图所示: 每个组件的介绍如下: AbstractFactory:一个创建抽象产品对象的接口 ConcreateFa 阅读全文
摘要:
作为常见的 ORM 框架,在使用 MyBatis 的过程中可以针对相关的查询进行缓存处理以提高查询的性能。本文将简要介绍一下 MyBatis 中默认的一级缓存和二级缓存,以及自定义缓存的处理 MyBatis 中存在的缓存结构如下图所示: 一级缓存 MyBatis 默认开启一级缓存,在对应的配置类中即 阅读全文
摘要:
Spring 提供了十分强大的依赖注入功能,使得我们不再需要手动去管理对象的依赖项。然而,在实际的使用场景中,可能会遇到类似下面的依赖异常: Exception encountered during context initialization - cancelling refresh attemp 阅读全文
摘要:
在执行访问数据库相关的操作中,特别是针对数据的修改操作,由于对于数据的修改可能会出现异常,因此对于整个一组的数据修改实际上都不能算是生效的,在这种情况下,需要使用事务的 “回滚” 来撤销本次执行的操作;而在执行成功之后,需要手动将这一组操作提交给数据库管理系统,使得对于数据的修改能够生效,这种操作在 阅读全文
摘要:
在一般的业务场景中,特别是针对相关的业务线相关的功能开发时,可能会遇到一些具有层级关系的数据关联结构。比如,一个员工可能属于一个领导管辖,而同时,这个领导也被另一个更高级别的领导管辖……,而本质上这些领导本身也是一个公司的员工,和普通员工有着相同的属性。因此,在为个功能设计相关的表结构时,单独为领导 阅读全文