java 新世界設計模式(1)

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

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

圖

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


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

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

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





經過一步一步地化簡,不是化簡,是演變變成這個模樣。今天的內容如果理解好了,你就會對函數語言程式設計有些瞭解了。
相關文章
- 淺談java之設計模式(1)Java設計模式
- JAVA設計模式 1 設計模式介紹、單例模式的理解與使用Java設計模式單例
- Java設計模式——模板設計模式Java設計模式
- 設計模式1設計模式
- Java——設計模式Java設計模式
- Java 設計模式Java設計模式
- 【Java】設計模式Java設計模式
- java設計模式Java設計模式
- Java設計模式——命令模式Java設計模式
- Java設計模式—代理模式Java設計模式
- Java設計模式-代理模式Java設計模式
- 重學Java設計模式-學習筆記(1)Java設計模式筆記
- 初探Java設計模式1:建立型模式(工廠,單例等)Java設計模式單例
- Java設計模式系列之單例設計模式Java設計模式單例
- 淺識JAVA設計模式——單例設計模式Java設計模式單例
- JAVA設計模式之 13.命令設計模式Java設計模式
- Java設計模式之介面卡設計模式Java設計模式
- 【Java】設計模式--建立型模式Java設計模式
- Java設計模式之builder模式Java設計模式UI
- Java 設計模式(工廠模式)Java設計模式
- Java 設計模式(四)《代理模式》Java設計模式
- Java設計模式-原型模式Java設計模式原型
- Java設計模式【單例模式】Java設計模式單例
- java設計模式-建造者模式Java設計模式
- Java設計模式---原型模式Java設計模式原型
- Java設計模式-橋接模式Java設計模式橋接
- Java設計模式之代理模式Java設計模式
- java設計模式 – 工廠模式Java設計模式
- 設計模式之----Java模板模式設計模式Java
- Java設計模式-策略模式分析Java設計模式
- Java設計模式 | 單例模式Java設計模式單例
- Java設計模式(工廠模式)Java設計模式
- Java設計模式-模板方法模式Java設計模式
- Java設計模式——單例模式Java設計模式單例
- Java設計模式–單例模式Java設計模式單例
- Java設計模式-工廠模式Java設計模式
- Java設計模式-單例模式Java設計模式單例
- Java設計模式之外觀模式Java設計模式