黑马程序员--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个对象(大小写)来共享,就会节省很多资源。

         缺点:为了使对象能够共享,需要将一些状态外部化,使得程序的逻辑复杂化;而且读取外部状态使得运行时间稍微变长。

 

posted @ 2013-04-05 00:22  郭彦君  阅读(141)  评论(0编辑  收藏  举报