排序算法分类

十种常见排序算法可以分为两大类:

非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。

线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间非比较类排序。

阅读全文 »

前言

代理模式:即通过代理对象访问目标对象,实现目标对象的方法。这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,实现对目标功能的扩展。

这涉及到一个编程思想:不要随意去修改别人已经写好的代码或者方法(有坑)。如果需要修改,可以通过代理模式实现。

写法实现

阅读全文 »

前言

工厂模式,顾名思义,即用来实例化一个个对象的模式。把相同类别的对象用工厂模式代替new生成,提高代码质量和系统扩展性。

写法分类

工厂模式的写法通常分为四类,简单工厂、多方法工厂、普通工厂、抽象工厂。
在分别说明他们之前,我们先创建几个对象。
抽象的Animals类,Plants类

阅读全文 »