四種方法寫一個單例模式 為什么單例類只能有一個對象?
為什么單例類只能有一個對象?一個類沒有辦法創建一個對象,即單例模式,該模式也可以可以保證系統中該類僅有一個實例,并能提供一個ftp連接它的全局訪問點,該實例被所有程序模塊共享。比如說在某個服務器程序中
為什么單例類只能有一個對象?
一個類沒有辦法創建一個對象,即單例模式,該模式也可以可以保證系統中該類僅有一個實例,并能提供一個ftp連接它的全局訪問點,該實例被所有程序模塊共享。
比如說在某個服務器程序中,該服務器的配置信息能保存在一個文件中,這些配置數據由一個單例對象統一讀取數據,然后再.服務進程中的其他對象再是從這個單例對象資源這些配置信息,這種簡化了在奇怪環境下的配置管理。
學習代碼是要多記還是要多敲?
有人懷疑,學習代碼必須得多敲代碼,這不過是沒錯的,不過我懷疑【多記】也很重要,下面請聽我的詳細點分析。
去學習代碼是一個不斷停止循環的過程不管你是一個新手,還是個有著多年經驗的老鳥,在自學代碼/新技術的時候,都要經歷這樣的過程:
學習理論知識,對你要學的內容必須得有個基礎的概念。
照著別人的代碼敲,特別是新手在剛入門的時候,甚至還是可以“裸的抄襲”別人的代碼,一行一行地敲到電腦里面(又不是大段代碼的復制粘貼),并現場調試實際,越深對理論的理解。
等能熟練了以后,才是是可以據自己的理解,把代碼敲出來。
當遇到問題的時候,再發熱發冷地做1、2、3步,不停加強記憶,迭代完善系統自己的代碼。
【多記】,到底是是記什么有人認為【多記】,那是背別人的代碼,這個觀點是錯誤`的,除非你能你做到見之難忘、腦容量無窮的,但是即便這樣的,需求稍加變化,你就可能會就“歇菜”了。這樣【多記】倒底要記哪些內容呢?
上面提起的理論知識,這個你必須記憶。諸如一項技術的概念、優缺點、適用場景,這些必須記憶。
不要記詳細的代碼,可以記住了方法的知識點、偽代碼的步驟。比如你要記憶單例模式的寫法,這樣的話還要你只要記住:單例模式有幾種寫法;每種寫法各自有什么弊端;比較推薦可以使用哪種寫法,或者餓漢式的寫法,構造函數不被人發現、提供給一個方法讓客戶端也可以我得到、定義一個靜態變量來存儲文件創建角色好的類實例(就創建,是因為構造函數不暴露,所以才只會創建戰隊四次);可是缺點也誰都看得出來:沒有懶程序加載的效果,從而降低內存的使用率。
【多記】不是【只記】,結果卻是在反復敲代碼的過程中,越深記憶。
我想知道為什么要多寫編程學代碼和我唱歌、燒飯完全不一樣,只聽歌看電影、背歌詞不一定會能唱好;只會吃、背菜譜不一定會會做飯菜,道理是完全不一樣的;理論有用,實踐極為重要。
那么【敲代碼】是自學代碼的最佳的位置手段么?
看書、聽音頻、看視頻、聽專家講座這些大都被動技能自學,大多來說被動學的知識,終于帶回記憶中的會也很少,大部分都世人遺忘掉了;
敲代碼不屬于主動學習,效果會比以上的途徑好大部分;
比敲代碼更穩定的途徑是什么?寫書、錄音頻、錄視頻、做講座,這些感覺起來是知識輸出,但實際上是主動學習,這些途徑和被動去學習兩者相比,效果會好很多,另無非,當你的技術能力都沒有達到了可以做“輸出”的水平時,只能證明你對己細節早就所了解地相當透徹了;的或說,你就是為了能做知識輸出,“迫不得已”讓自己更踏入的學習。
我將持續分享Java開發、架構設計、程序員職業發展等方面的見解,我希望能得到你的關注。