文章列表
最近在看设计模式方面的资料.突发灵感,从数据库的连接中联想到了5种设计模式.然后编写了下,都能实现,可能有些实现方式在实际生产环境中并没有意义.就当是对设计模式的学习吧.
首先上演的就是策略模式.我们在连接数据库时,并非一种数据库,比如,有时是MySql,有时是Oracle,有时又换到SQL Server,都要涉及数据库的切换.此时.我们就可以将数据库连接的算法封装起来,使它们可以相互替换.
首先我们定义一个策略接口,用来表示数据库的连接.
Java代码
package strategy;
public interface Strategy {
...
1、提炼
就是对某个过程的一部分,或某个事物的一部分进行抽象并概念化,以减小所表达的目的(要做什么)和实现(做什么,如何做)之间的语义差距。
运用提炼的重构手法包括
Extract Method、
Split Temporary Variable、
Extract Class、
Extract Subclass、
Extract Superclass、
Extract Interface等
2、内联
就是用其直接实现替换原来的间接调用,通过内联可以去掉意义不大的间接性。
运用内联的重构手法包括
Inline Method、
Inline Temp、
Inline ...
java版快速排序算法
public class QuickSort {
static int partition(Integer[] iarray, int low,int high) {
int temp = iarray[low];
while(low<high) {
while(low<high && iarray[high]>=temp) {
--high;
}
iarray[low] = ia ...
1.Bloom Filter
2.线段树
3.树状数组
4.Trie树
5.后缀树,后缀数组
6.并查集
7.Hash表
8.B树
9.红黑树
10.堆与优先队列
BloomFilter——大规模数据处理利器
Bloom Filter是由Bloom在1970年提出的一种多哈希函数映射的快速查找算法。通常应用在一些需要快速判断某个元素是否属于集合,但是并不严格要求100%正确的场合。
一. 实例
为了说明Bloom Filter存在的重要意义,举一个实例:
假设要你写一个网络蜘蛛(web crawler)。由于网络间的链接错综复杂,蜘蛛在网络间爬行很可能会形成“环”。为 ...