徹底搞懂裝飾器模式

2021-10-07 20:46:27 字數 779 閱讀 6661

動態的給乙個物件新增一些額外的職責

繼承方案會導致繼承結構複雜,不易維護等問題,因此使用組合代替繼承,給原始類新增增強功能

裝飾器類需要和原始類繼承相同的抽象類或者實現相同的介面

下面以jdk中的io舉例:

//抽象類輸入流

public

abstract

class

inputstream

}

//實現inputstream中的所有方法,讓其子類按需要覆蓋方法,並且還可以提供附加的方法或字段。

public

class

filterinputstream

extends

inputstream

public

intread()

throws ioexception

public

void

close()

throws ioexception

}

//裝飾器類都繼承filterinputstream,可以增強自己想要增強的功能

public

class

checkedinputstream

extends

filterinputstream

public

intread()

throws ioexception

return b;

}}

徹底搞懂單例模式

在程序中,乙個類只允許建立乙個物件 解決資源衝突 資料只需要存在乙份 1.餓漢式 public class singleton public static singleton getinstance 優點 執行緒安全,獲取例項的速度快 缺點 類載入時例項化物件,可能不被使用,造成記憶體的浪費。2.懶...

徹底搞懂px em rem

px畫素 pixel 相對長度單位。畫素px是相對於顯示器螢幕解析度而言的。px特點 em是相對長度單位。相對於當前物件內文字的字型尺寸。如當前對行內文字的字型尺寸未被人為設定,則相對於瀏覽器的預設字型尺寸。em特點 注意 任意瀏覽器的預設字型高都是16px。所有未經調整的瀏覽器都符合 1em 16...

徹底搞懂parseInt

parseint 72.45 8 2 8 1 7 8 1 4 8 1 5 8 2 2 1 7 8 4 1 8 5 1 8 8 58.578125 parseint 231 3 3進製只能是0 2,所以查詢到3的時候,發現已經不是3進製的範疇了,則不再繼續查詢 把2當做3進製,最後轉為10進製 2 3...