Java 雜七雜八

在這里整理一下我在寫實驗以及上課過程當中學到的雜七雜八沒有系統(tǒng)總結的知識

抽象類:

抽象類在我看來比較像生物里面界門綱目科屬種里面的較大的類,也就是說抽象類里面可以延展出眾多的具體的類,官方定義是聲明方法的存在而不去實現(xiàn)它的類被叫做抽象類,舉個栗子

所有的點都要加屬性,但是具體的屬性每一種點加的都不一樣,所以我們將加屬性的函數(shù)抽象化

abstract void fillVertexInfo (String[] args);

將整個類也抽象化,在實現(xiàn)每一種具體的邊時,從這個抽象類里面extends出來,完成之前沒有完成的抽象方法,在抽象類里面實現(xiàn)了的方法也可以重寫覆蓋。


工廠模式

工廠模式我看到了一個將它比喻成女媧娘娘的八卦爐的例子,八卦爐里面造不同的人種,怎樣快速的選擇自己要造的人種,就將八卦爐做成一個工廠,當要使用的時候,就可以快速構造不同的人種對象。那么用我們實驗中的例子,也就是節(jié)點和邊的工廠模式


這便是演員節(jié)點的工廠模式,他與其他的節(jié)點一樣,擁有同樣的調用函數(shù)接口,但是每一個具體的實現(xiàn)都不一樣,在調用的時候,如下圖

Actor a = new ActorVertexFactory().createVertex(label,"Actor", args);

其他節(jié)點的生成也像這樣,這種設計模式的好處在于,用戶不需要知道底層是怎樣具體構造這個節(jié)點的,他們只需要只要要傳遞哪些信息即可。它具有良好的封裝性,代碼結構清晰,也有利于擴展。它是典型的解耦框架。高層模塊只需要知道產品的抽象類,其他的實現(xiàn)類都不用關心。


策略模式:

策略模式我看到的一個很好的例子是將它比喻成了孔明的錦囊妙計,在一個錦囊里面裝著三個妙計,用戶可以自如的調用不同的妙計。

下面我一邊舉例一邊說:

這種方法先實現(xiàn)一個接口或者抽象類


然后完成接口或者從抽象類extends出來一個或者幾個具體的策略


然后創(chuàng)建一個容器,將這些策略加到容器中


然后讓用戶選擇策略,用下面這種方式調用

然后調用r的方法即為調用你想的那種方法


從properties文件里面獲取參數(shù)信息

先寫了一個param.properties文件,里面存儲了所需要設置的參數(shù)


然后寫了一個函數(shù)從文件中讀入參數(shù)


?load ( InputStream inStream),從輸入流中讀取屬性列表(鍵和元素對)。通過對指定的文件進行裝載來獲取該文件中的所有鍵 - 值對。以供 get( String key) 來搜索。

然后初始化參數(shù)時,只需調用此函數(shù)即可


線程

多線程真的很復雜啊,特別是公共代碼段,很容易串行,一定要記得如果一個代碼段一次只能允許一個線程訪問,就一定要鎖定,也就是說,先給他一把“鑰匙”,只有他出來了,把“鑰匙”交給下一個要執(zhí)行的進程才可以,程序才不會亂。線程的sleep函數(shù)很好用,可以控制程序隔一段時間執(zhí)行一次指定函數(shù),雖然用timer類也可以,但是兩個的適用范圍不同,線程很強大,我還需要繼續(xù)學習。


不同持有對象(容器)之間的區(qū)別:

Set類:集合類型,里面存的元素不重復,加入的順序與輸出的順序不一定相等,要讓順序相等就用LinkedSet類即可;

ArrayList類:實現(xiàn)List接口,類似于長度可變的動態(tài)數(shù)組,適用于大量隨機訪問的情況。但插入和刪除的代價非常高昂;LinkedList:實現(xiàn)List接口,類似于鏈表,也提供了優(yōu)化的順序訪問。在插入和刪除方面代價低廉,隨機訪問代價較高

Queue接口:LinkedList實現(xiàn)了Queue接口,提供了方法支持隊列的行為;

Map接口:鍵值對,通過鍵找值或者被稱為字典,可以通過鍵找值,也可以通過值找鍵。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容