設計模式:
是一套被反覆使用、多數人知曉的、經過分類的、**設計經驗的總結
套路 模式
前人已經經過大量測試得出的設計模式
使用設計模式的好處:提高**的可重用性與可靠性。
單例設計模式 :
單個例項 == 》單個物件 意味著只能建立乙個物件,就好電腦的任務管理器,只能有乙個視窗。
單例設計模式:
① 私有構造方法
② 對外提供乙個物件,供其他的類訪問,但是該物件需要封裝,通過 private 私有,提供 getter 方法。
③ 必須通過 static 進行類名呼叫。
單例設計模式的常用形式:
① 餓漢式
② 懶漢式
注意 : 懶漢式在理論上是優於餓漢式的,但是在開發中,往往使用的是餓漢式,儘管餓漢式的資源消耗大,但是
懶漢式有執行緒安全問題,比較來說,餓漢式使用效果優
餓漢式單例設計模式:
**示例:
1 package demolist;
2 3 public class demo10
9 }10 class hungryman
13 private static hungryman instance=new hungryman();
14 public static hungryman getinstance()
17 }
懶漢式單例設計模式:
**示例:
1 package demolist;
2 3 public class demo11
9 }10 class foolman
14 private static foolman instance=null; //注意這裡,只有當確定呼叫getinstance()方法時才會去建立物件。
15 public static foolman getinstance()
19 return instance;
20 }
21 }
單例設計模式總的**示例:
1 public class 單例設計模式
12 }
13 // 單例設計模式 -- 餓漢式
14 class singleton
18 //2. 為外界提供乙個物件
19 private static singleton instance=new singleton();//int a=5;
20 //3. 將對外提供的物件,封裝,私有的屬性共有的方法,對外提供 getter 方法,讓其他類可以獲取該物件
21 // 4. 為了能夠使用類名進行呼叫,使用 static 進行修飾
22 public static singleton getinstance()
25 }
26 // 單例設計模式 -- 懶漢式
27 class singleton1
32 //2. 為外界提供乙個物件
33 private static singleton1 instance=null;//
34 //3. 將對外提供的物件,封裝,私有的屬性共有的方法,對外提供 getter 方法,讓其他類可以獲取該物件
35 // 4. 為了能夠使用類名進行呼叫,使用 static 進行修飾
36 public static singleton1 getinstance()
41 return instance;
42 }
43 public static void fun() {}
44 }
列舉:
. 列舉: 有限個數值 / 物件。
2. 性別 , 星期,交通燈,季節
3. 一般的類來模擬列舉類的實現。 ( 季節來模擬 )
①. 格式 :
關鍵字 enum 該關鍵字表示列舉類。
②. 列舉類中物件寫在第一行。並且多個列舉物件之間用逗號隔開,最後乙個跟分號 , 並且列舉物件一般用大寫
。③. 列舉類實質還是乙個類,類的特性它都有:
類的成員。屬性 方法 構造方法 抽象方法
**示例:
1 public static void main(string args)
8 }9 // 列舉類
10 enum seasone
18 },summer(" 夏季 ")
23 },autumn(" 秋季 ")
28 },winter(" 冬季 ")
33 };
34 string desc;
35 public void fun()
38 // 構造方法 必須被私有
39 /*private seasone() */
41 private seasone(string desc)
44 // 抽象方法 描述不同季節的特徵
45 public abstract void display();
46 }
47 class a
列舉應用之交通燈:
**示例:
1 public class 交通燈描述交通行為 */
18 //switch 的小括號的資料型別 可以是 byte short char -- 》 int 在 1.7jdk 之後 string 。 enum 列舉類也支
19 持
20 trlight t=trlight.valueof(sc.next().touppercase());
21 switch(t)
26 //name 列舉物件的常量名稱
27 /*system.out.println(trlight.red.name());
28 //ordinal 列舉物件的序號,從 0 開始
29 system.out.println(trlight.green.ordinal());
30 //tostring() 列舉物件的常量名稱
31 system.out.println(trlight.yellow.tostring());*/
32 //valueof(name) 根據 name 返回列舉類的常量物件
33 // system.out.println(trlight.valueof("red"));
34 }
35 }
36 // 列舉類 格式 : enum 列舉類的名稱
37 enum trlight
44 },green
49 },yellow
54 };
55 // 不同燈亮起時的行為
56 public abstract void action();
57 }
網路程式設計:
網路 :在不同的地域,通過終端裝置 ( 台式電腦,筆記本, pad) 和傳輸裝置 ( 路由器,交換機,網線 ) 進行連線的網狀結
構。網路的目的:
資源共享。
網路三要素 :
① ip :分配給網際網路上的每台計算機的唯一位址。
1 》 ipv4:32 位 ,每 8 位換算成乙個十進位制。
點分十進位制 : 255.255.255.255
分為 a-e 五類位址。
**① 127.0.0.1 /localhost 本地回環位址 代表本機位址。
2 》 ipv6: 128 位,
冒分十六進製制: abcd:ef01:2345:6789:abcd:ef01:2345:6789
3 》本機 ip 的檢視: ipconfig
② 埠號: 0-65535 之間。
用來區分同一臺計算機上不同的軟體的。建議自定義的埠號從 8000 往後
。③ 協議:網際網路之間進行通訊的規則。
單例模式之列舉單例
列舉也是餓漢式。列舉單例 問題1 列舉單例是如何限制例項個數的 反編譯後可以看到 就是我們列舉類的乙個靜態成員變數而已,單例項的 問題2 列舉單例在建立時是否有併發問題 沒有,因為它也是靜態成員變數,它的執行緒安全性也是在類載入階段完成的。那個時候不會有執行緒併發問題 問題3 列舉單例能否被反射破壞...
設計模式 單例模式(列舉,強烈推薦)
通過列舉實現單例模式 最佳的單例實現模式就是列舉模式。利用列舉的特性,讓jvm來幫我們保證執行緒安全和單一例項的問題。除此之外,寫法還特別簡單。還可以規避可能還存在反射攻擊或者反序列化攻擊,完全保證單例模式 示例和注釋 單例模式 列舉方式 1.建乙個列舉類 public class singleto...
單例模式以及列舉
相同點 同樣是類中有固定的物件個數 不同點 單例模式只有乙個物件,列舉是有限個物件,但物件只有乙個時,也可以叫做單例模式 單例模式有七種實現方式,但本質上是讓讓類只能建立乙個物件,為了保證這個,只能在類內部建立物件,而在類外部外部無法建立,所以構造器是空的 給出兩種實現方式 餓漢式 提前建立好物件 ...