java 新世界設計模式(1)

weixin_34320159發表於2018-12-12
8207483-c19fc176825eae42.JPG

隨意 java8 的出現,java 開始逐步支援函數語言程式設計。這裡想說一句我們做的工作是讓我們思維轉換為機器可以理解的程式碼,機器不人類,人類也不是機器,我們擅長的機器不一定擅長,反之亦然。物件導向程式設計對於我們可能更好理解。而函數語言程式設計可能更適合機器。

8207483-2660d2a7746aac83.JPG
四人幫的設計模式

這本書很經典,流傳久遠。雖然沒有讀過,也早就聽過他大名。在學習設計模式多少也受過他影響。不過隨著時代的變遷,我們需要對一些概念重新解釋和詮釋。

8207483-701f651e2e200685.JPG
8207483-cba0f8ecfab3a1dd.JPG

在開始之前,我們看一看,變數賦值的幾種情況。第一個我們就不解釋了。第二個也應該不難理解。關鍵是第三個

8207483-fdfc3798759fecaf.JPG
8207483-8c4d02d8ea7baf9f.JPG

實現一個介面,這個介面只有一個方法需要實現,而且這個方法接受一種型別作為引數,然後返回一個型別,這些特點很重要。介面上有註解 @FunctionInterface 作用告訴編譯器這是一個函式介面。

8207483-c050cdafee893f3e.JPG
lamb

函式也可以這樣寫,這是當下流行的寫法,不是因為其看起來酷,更重要是其內在機制。以後有機會也玩一玩 haskell。

8207483-2e9ca5684f3ab3ae.JPG

上面,在 java8 中我們可以通過::操作符來呼叫類的方法。建構函式也是類的方法所以可以這麼寫。

8207483-1a3fbe1b3c8009e8.JPG
8207483-1a75993ca4d9ea56.JPG
8207483-c650dc906c7e75d1.JPG
8207483-1c74e3880a28cbdd.JPG
8207483-3ba3721b29ef5a8c.JPG

經過一步一步地化簡,不是化簡,是演變變成這個模樣。今天的內容如果理解好了,你就會對函數語言程式設計有些瞭解了。

相關文章