8. JavaSE-單例設計模式

設計模式:對問題行之有效的解決方式,其實他是一種思想

單例設計模式:可以保證一個類在內存中的對象唯一性

 

必須對於多個程序使用同一個配置信息對象時,就需要保證該對象的唯一性

 

如何保證對象的唯一性?

1. 不允許其他程序使用new新建對象

2. 在該類創建一個本類實例

3. 對外提供一個方法讓其他程序可以獲取該對象

 

步驟:

1. 私有化該類構造函數(不能在其他類new該類對象)

2. 通過new在本類中創建一個實例

3. 定義一個公有方法,將創建的對象返回


單例設計模式-餓漢式:

    class Single 

    {

        private Single(){}

        private static Single s = new Single();

        public static Single getInstance()

        {

            return s;

        }

        public voidtestSingle()

        {

            System.out.println("This is test single instance mode...");

        }

    }

    class SingleDemo

    {

        public static void main(String[] args)

        {

            Single ss = Single.getInstance();

            ss.testSingle();

        }

    }

 

單例設計模式-懶漢式(單例設計模式的延遲加載模式)

    class Single 

    {

        private Single(){}

        private static Single s = null;

        public static Single getInstance()

        {

            if (s == null)

            {

                 s = new Single();

            }

            return s;

        }

        public voidtestSingle()

        {

            System.out.println("This is test single instance mode...");

        }

    }

    class SingleDemo

    {

         public static void main(String[] args) 

        {

            Single ss = Single.getInstance();

            ss.testSingle();

        }

    }

注意:實際開發中,常用的是餓漢式,因爲懶漢式存在安全隱患,當使用多線程併發程序的時候,可能保證不了對象的唯一性

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章