標籤式使用者介面的故事續集

2021-06-15 22:08:24 字數 640 閱讀 2662

一年前的標籤式使用者介面的故事,試圖從乙個gui的問題引出乙個關於外掛程式體系的討論。一年後,發現自己有幸再次以外掛程式模型為基礎搭建了又乙個軟體系統的靜態結構。這種模型已是如此的普遍,從網路遊戲到領域應用框架,**的動態載入為系統架構帶來的靈活性是如此的顯而易見,以至稍微上點規模的軟體都離不開它。

這是我們的外掛程式介面:

inte***ce

isomething

... to 

"衡量乙個外掛程式系統的好壞,介面的設計是個關鍵。它必須承載外掛程式和宿主間的所有互動,但又不能太複雜,畢竟越複雜的東西越難以適應變化。這方面asp.net的設計似乎能給人不少啟發。比如它在某些介面中只定義了乙個簡單的方法,這個方法的引數被定義成另外乙個介面的型別,在這個被作為引數傳遞的介面中提供眾多其他的方法和事件,來實現外掛程式和宿主間的雙向通訊。不知道有沒有人把這樣的方式也命名成某種設計模式,然後再用深奧的術語來詮釋它,讓它看起來是多麼的巧妙。然而,最終程式設計師使用這樣的介面來開發外掛程式之前,還是必須從厚厚的文件中找到關於介面中的這堆方法和事件呼叫順序的描述,就像winform開發人員必須知道form layout事件總是早於form load事件被觸發的一樣。不知道有沒有什麼辦法可以讓介面定義或者呼叫契約中包含這些時序邏輯。

宿主:提供公共服務

外掛程式:實現業務邏輯

基礎:介面定義

函式式介面的使用

package com.learn.demo01.functionalinte ce 函式式介面的使用 一般可以作為方法的引數和返回值型別 public class demo public static void main string args 呼叫show方法,方法的引數是乙個函式式介面,所以我...

函式式介面的理解

1,如果要理解函式式程式設計,我們首先要理解什麼是匿名內部類,函式式變成可以簡單的理解為匿名內部類的進一步的簡化,例如下面例子 stream類iterate方法 第一種寫法 private static void steamtest foreach system.out println 第二種寫法 ...

談談嵌入式裝置使用者介面的未來

最近估計你一飽了3d的 阿凡達 並被裡面驚奇的智慧型使用者介面所吸引。這篇文章就談談嵌入式裝置使用者介面開發是個好方向嗎?它適合作為自己的發展方向嗎?有資料有真相,我們先來看一組資料 abi research的資料顯示,2009年移動裝置銷量將達到12億台 部 其中包括手機 移動網際網路裝置 上網本...