黑马程序员--java之设计模式(不断更新中...)
设计模式
1、单例设计模式:保证每个类中只创建一个对象
1)懒汉式
1
2
3
4
5
6
7
8
9
10
11
|
//懒汉式 class Single{ //在自己内部定义一个自己的实例 private static Single s = new Single(); //构造函数 private Single(){} //提供一个供外部访问的静态方法 public static Single getInstence{ return s } } |
2)饿汉式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
//饿汉式 class Single{ //定义一个内部引用,不创建对象 private static Single s = null ; //构造函数 private Single(){} //提供供外部访问的静态方法 public static Single getInstence(){ //判断该引用为空的话,再建立对象 if (s == null ){ syhchronized(Single. class ){ if (s == null ){ s = new Single; } } return s; } } } |
2、享元模式(Flyweigth):
Flyweigth在拳击比赛中是指最轻量级。该模式通过共享对象的方式节省资源,提高效率
经典应用:比如一个英文文本,如果文本中所有字母都分别定义一个对象,将占用大量的内存,
而如果将26个字母定义成52个对象(大小写)来共享,就会节省很多资源。
缺点:为了使对象能够共享,需要将一些状态外部化,使得程序的逻辑复杂化;而且读取外部状态使得运行时间稍微变长。