主要角色 1. 产品角色(Product):它是包含多个组成部件的复杂对象,由具体建造者来创建其各个滅部件。 2. 抽象建造者(Builder):它是一个包含创建产品各个子部件的抽象方法的接口,通常还包含一个返回复杂产品的方法 getResult()。 3. 具体建造者(Concrete Build ...
分类:
其他好文 时间:
2020-02-15 23:13:02
阅读次数:
89
1 冒泡排序 时间复杂度 O(n²) 。额外空间复杂度O(1)。 1)算法步骤 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的 ...
分类:
编程语言 时间:
2020-02-11 14:22:41
阅读次数:
57
创建型1)工厂方法Collection.iterator() 由具体的聚集类来确定使用哪一个Iterator2)单例模式Runtime.getRuntime()3)建造者模式StringBuilder4)原型模式Java中的Cloneable结构性1)适配器模式InputStreamReaderOu ...
分类:
编程语言 时间:
2020-02-03 19:02:25
阅读次数:
78
算法的评估 对于一个问题,经常有多种不同的求解算法,这时候我们就需要一个对算法进行评估的标准,找出最优的方案,评估一个算法有以下几个维度: 正确性:能正确的实现功能,满足问题的需求。 易读性:通常,写出一个利与人类阅读的代码和利于机器阅读的代码一样重要 健壮性:对于预料之外的输入,也能做出合适的处理 ...
分类:
编程语言 时间:
2020-02-02 13:38:38
阅读次数:
151
有关java的动态代理和代理模式 一, 有关设计模式==设计模式可分为以下三类==创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式 ...
分类:
编程语言 时间:
2020-01-28 17:38:31
阅读次数:
98
设计模式,可以深入理解面向对象的设计思想,提高软件的开发效率,节约设计成本。这个教程解释比较明朗,代码量也比较多,是Java代码系列。 设计模式简介 工厂模式 抽象工厂模式 单例模式 建造者模式 原型模式 适配器模式 桥接模式 过滤器模式 组合模式 装饰器模式 外观模式 享元模式 代理模式 责任链模 ...
分类:
其他好文 时间:
2020-01-28 12:20:27
阅读次数:
84
1) 意图: 将一个复杂对象的构建和它的表示分离,使得同样的构建过程可以创建不同的表示 2) 结构: 其中: Builder是提供生成Product各个部件的抽象接口 ConcreteBuilder 实现Builder的各个接口 Director 构造一个使用Builder接口的对象 Product ...
分类:
编程语言 时间:
2020-01-22 18:26:27
阅读次数:
57
目录: 设计模式的六大原则 工厂模式(Factory Pattern) 抽象工厂模式(Abstract Factory Pattern) 单例模式(Singleton Pattern) 建造者模式(Builder Pattern) 原型模式(Prototype Pattern) 本文参考:菜鸟教程, ...
分类:
其他好文 时间:
2020-01-17 20:46:07
阅读次数:
93
目录 要点算法分析 直接插入排序的算法性能 时间复杂度 空间复杂度 算法稳定性完整参考代码 JAVA版本参考资料相关阅读 要点 直接插入排序是一种最简单的插入排序。 插入排序:每一趟将一个待排序的记录,按照其关键字的大小插入到有序队列的合适位置里,知道全部插入完成。 在讲解直接插入排序之前,先让我们 ...
分类:
编程语言 时间:
2020-01-16 10:57:01
阅读次数:
74
目录 要点完整参考代码算法分析 基数排序的性能 时间复杂度 空间复杂度 算法稳定性相关阅读 要点 基数排序与本系列前面讲解的七种排序方法都不同,它不需要比较关键字的大小。 它是根据关键字中各位的值,通过对排序的N个元素进行若干趟“分配”与“收集”来实现排序的。 不妨通过一个具体的实例来展示一下,基数 ...
分类:
编程语言 时间:
2020-01-16 10:55:24
阅读次数:
66