元素模式初體驗

2021-09-02 06:19:33 字數 1040 閱讀 8729

對於現在的軟體領域,設計模式基本上是gof影響深遠的design patterns這書的代名詞,在看到說元素模式(edp)是一類全新的設計模式時,非常好奇的去試讀了兩章,受益匪淺。

edp**於研究性專案spqr(模式查詢與識別系統),立足於程式設計理論的研究,用於從現存的源**的程式體中識別出已知的設計模式,在這個研究過程中,發現了edp這一兼具實踐性和實用性的廣泛蘊涵的設計模式。因此對於具有一定開發經驗的開發人員來說,深刻理解edp及其背後的思想能夠大大提公升抽象能力和程式設計理論水平。

通常來說,設計模式是高度抽象的,是經過不斷的實踐、總結、抽象並被實踐證明的有效的程式設計方法;它不能太剛性,從單純的實現來**設計模式,生命力會大打折扣;而edp就是用來構建根本性基礎的設計模式。

edp的研究**於spqr,關注點卻是大家「顯而易見」的東西;顯而易見指的是「正確性」,而這個「正確性」是完全取決於語境、經驗和所學的。和ddd中的限界上下文,程式語言中的作用域一樣,語境非常關鍵,一方面指出了發揮設計模式的最佳位置,另一方面,也指出了限制範圍,只有在語境中的那一畝三分地中才是ok的;這與設計模式是特定語境下的常見問題的常見解決方案這一宗旨是非常吻合的。

edp的研究方法是將現有模式進行分解,從中得到關心的模式;在研究過程中,將關注點聚焦到作用域關係,這樣可以調整審視某個特定設計元素的視角。

在具體研究中,從作用域的物件、方法、欄位和型別這四種的互動關係,找出我們感興趣的幾種關係,最終聚焦到方法呼叫、字段讀取、狀態改變及內聚,在第二章中對方法呼叫進行分析:將方法呼叫進行抽象,可以得到以下四個部分:發起呼叫的方法、被呼叫的方法以及它們分別位居的物件;然後從相似度角度,可以發現三種關係:

從這三個關係擴充套件為乙個三維模型,就能引申出我們現有程式設計中的各種理論關係;

舉例來說,

擴充套件到三維空間,將方法相似度取為相似,則

這樣將物件導向之間的關係與程式理論結合,很容易去理解程式設計理論,提公升開發人員的抽象思維能力;

還有個有意思的地方就是,這個三維抽象空間裡面還存在著不少地方是「盲區」,目前沒有一種普遍接受的程式概念與之對應,這與元素週期表的思維很接近,順著這種思維方式,我們的抽象與演化能力會不會大增呢?

Android dark模式 初體驗

為什麼我們需要深色模式?可大幅減少耗電量 具體取決於裝置的螢幕技術 為弱視以及對強光敏感的使用者提高可視性。讓所有人都可以在光線較暗的環境中更輕鬆地使用裝置。深色主題背景同時適用於 android 系統介面和在裝置上執行的應用。我們該怎樣啟動深色模式?在 android 10 api 級別 29 及...

多執行緒 future模式初體驗

第一次使用多執行緒,雖然理解的不是很透徹,但是也值得記錄下。用的是future模式。建立個執行緒池 private executorservice cachedthreadpool executors.newfixedthreadpool 200,new siyuethreadfactory tes...

谷歌初體驗

一直用拼音加加的我,終於在某人的 下,試用了一下谷歌輸入法,結果拼音加加徹底的從我的機器上消失了,我終於也成為了乙個喜新厭舊的人啦.先說一下谷歌比拼音加加強的地方吧.1.最吸引人的地方就是可以自動同步使用者詞庫,這樣只要是能上網的地方,我就可以更新到符合我習慣的詞庫了,打的越多就越熟練,哈哈.2.句...