EffectiveJava 一 靜態工廠方法

2021-09-24 07:29:13 字數 1096 閱讀 9095

design pattern & idiom(gamma 95 【設計模式領域的標準參考書】)

**的清晰與整潔最為重要:模組的使用者永遠也不該被模組的行為所迷惑(那樣就不清晰了),模組要盡量的小,但又不能太小【本書使用的術語模組,是指任何可重用的軟體組織,從單個方法到包含多個包的複雜系統都可以是乙個模組】,**應該被重用而不是被拷貝。模組的依賴性應該降到最小。

ps 指令重排: 原子操作: 記憶體屏障:

volatile:果乙個變數加了volatile關鍵字,就會告訴編譯器和jvm的記憶體模型:這個變數是對所有執行緒共享的、可見的,每次jvm都會讀取最新寫入的值並使其最新值在所有cpu可見。

優點: 1.1.靜態工廠第乙個優勢:他們有名稱,可以確切的描述正被返回的物件 1.2.靜態工廠第二個優勢:不必每次呼叫它們的時候都建立乙個新物件 1.3.靜態工廠第三個優勢:他們可以返回型別的任何子型別物件 1.4.靜態工廠第四個優勢:在建立引數化型別例項的時候,他們是**變得更加簡潔 1.5.靜態工廠第五個優勢:靜態工廠方法可以減少對外暴漏屬性,以防呼叫者出錯 1.6.靜態工廠第六個優勢:可以根據場景自定義返回物件

**解析

1.1 擁有清晰的名稱,輕易的區分角色型別

public class rolefactory 

public static role getstudent

() public static role getteacher()}

複製**

1.2 不必每次呼叫它們的時候都建立乙個新物件

/*

*synchronized(類的名.class)

*每個類在jvm裡面只有乙個唯一的位元組碼,所以.class是唯一的,無論多少物件,共用此同一把鎖。

*/複製**

EffectiveJava 學習總結(一)

1 考慮用靜態工廠方法代替構造器 引數例項化的時候使 變得更加簡介 缺點 2 遇到多個構造器引數時要考慮用構建器 構建器 builder 缺點 描述 public class nutritionfacts 構建器 public static class builder public builder ...

靜一靜,做好人生的減法

寵辱不驚,閒看庭前花開花落 去留無意,漫隨天外雲卷雲舒 鳥的翅膀一旦系上了 就永遠也不能飛騰起來 其實人生何嘗不是如此?在現實生活中,聰明人做的是減法。人生如釀酒,將無味的東西減去,雖然量會少,但是味道卻會變得醇厚。讓自己學會做減法,便可以收穫輕鬆與自在。留下值得堅持的美好,剪掉可以放棄的慾望,你的...

《effective Java》讀後筆記

為什麼區域性變數要宣告為 final 在jdk 1.8 之前,不用final修飾會編譯報錯。在jdk 1.8 中,不用final修飾不會報錯,但是一旦改變了變數的值就會報錯 區域性類如果乙個內部類需要在多個方法之外仍然是可見的,或者是它太長了,不適合於放在方法內部,就應該使用成員類。如果成員類的每個...