java中的設計模式及類部類的定義與使用
1. 設計模式:主流的設計模式主要有23種,它們的特點是實用性好,程式碼簡潔,結構美觀著稱。
2. 架構模式:目前主流的架構模式主要有B/S架構,和C/S架構,判斷一種架構屬於哪一種架構,主要看其邏輯程式碼的位置,若邏輯程式碼在伺服器,屬於B/S架構,若在客戶端,則表示屬於C/S架構,B/S架構是一種輕量級、方便升級和修改,越來越多的軟體採用該架構,尤其是企業裡;C/S適用於必須依賴客戶端,依賴大運算的軟體,特別是遊戲類的軟體,主要特點是速度快,但不便於升級和更新。
3. 設計模式和架構模式的區別和聯絡:架構模式屬於一種戰略模式,而設計模式只是一種戰術模式,是一個整體與區域性的關係。
4.
a) 定義一個售票員介面,裡面宣告三個方法
i. void 找錢();
ii. void 查詢();
iii.
b) 新建三個售票員介面的實現類,分別實現了售票員介面的類分別是:售票員實現類A,售票員實現類B和售票員實現類C。
c) 新建一個Factory工廠類,在裡面編寫一個建立售票員物件的方法
d)
i. 擴充套件一:
如果感覺售票員的實現類不夠,可以增加一個售票員的實現類,以完成功能的新增
ii. 擴充套件二:
如果售票員A
iii.擴充套件三:
如果售票員A的某些方法過時了,可以為A類增加一個子類,重寫父類的的該過時的方法。
5. 工廠模式的優點:工廠模式是一種隱藏式的建立物件,將建立物件的過程隱藏,只需要呼叫工廠類的方法去建立物件,而不考慮介面的實現類,是一種面向父類的程式設計。
6. 單例模式:單例模式就是定義一個只能生成一個唯一的例項物件的類,適用於類似於地球,太陽,月亮型的型別定義,它的訪問頻率很高,但不能作為資訊的記載者的情況,單例模式分為懶漢式單態和餓漢式單態,它們分別是:
a) 懶漢式單態:用的時候在構造物件,優點是不提前載入資源,但範問速度較慢,懶漢式單例模式的例項物件的方法必須加上 synchronized 關鍵字,可以處理多工的併發訪問。
b) 餓漢式單態:一開始就夠造好物件,優點是訪問速度快,但是提前載入資源,有可能造成浪費。
7. 內部類:定義在一個類裡面的類,即一種類中類,主要有以下特點:
a) 可以看做是其包含類的屬性;
b) 通過類名.靜態方法和屬性來訪問;
c) 內部類可以直接訪問外部類的屬性和方法;
d) 若內部類是靜態的,只能訪問外部類的靜態成員;
e) 外部類可以直接new 一個靜態的內部類物件;
8. 匿名內部類(還有內部介面):匿名內部類沒有類名,只有方法實現,一般的格式都是:
a) new 介面名/抽象類名/普通類名(){},分別表示{}括號類立即實現介面/繼承抽象類/繼承普通類並選擇性的重寫父類方法
b) 其位置是定義在方法和屬性上使用;
c) 生成的class檔案,若是第一個匿名內部類,第二個依次類推,表示為:
i. Test$1.class
ii. Test$2.class
…
iii. Test$n.class
9.若是方法裡使用匿名內部類,該匿名內部類中的方法要訪問該方法裡定義的區域性變數,該區域性變數必須定義為final 型別的,因為例如該屬性為 age ,如果不是final型別的,內部方法就不能訪問,age只是一個變數,會隨著程式的執行而動態的改變,而final修飾的變數是一個不能改變的常量,也就是說age的值是一個常量的地址,該地址是不會發生變化的,所以我們可以通過地址訪問該常量,而不會出現錯誤。