物件導向之自定義資料控制項

2021-04-26 17:10:53 字數 1242 閱讀 3277

物件導向之自定義資料控制項

為了敘述問題的方便,我們把能與資料來源繫結的視覺化控制項暫且稱為「資料控制項」,它們在反映使用者需求方面有著很多類似或相通的地方,所以被歸結在同乙個章節中討論。

在語言環境中提供的控制項以適應性廣泛為主要目標,重點是解決通用性方面的問題。當這些控制項應用於特定的操作場景時,仍然會在應用層面上產生另外一些帶有普遍性的問題。之所以要提倡自定義的控制項封裝,就是要基於這些問題的共性實現統籌解決。這些新問題的產生基本上**於「漢語環境」與「資訊管理系統」兩個特定的場景。在此前提下,我們來研究還有哪些具有共性的問題需要改進與完善。

資料是應用之源。在使用者評價應用的時候,對資料錄入部分的功能往往會非常關注。毫不客氣地說:他們會關注到每個控制項、每一下按鍵、每個操作邏輯的細節。這並不是使用者過於挑剔,應當是基於使用者自身的應用檢驗。因為任何微小的差別對他們來說都將意味著一種實際性的工作量。程式設計師認為:在乙個簡短的操作邏輯中多按一下鍵算不了什麼,但操作員必須要永無休止地在這個邏輯上按這個鍵,所以,使用者的關注不無道理。

從總體上看,資料錄入過程重點要解決的問題可以歸結為以下兩大類:

1.對可能被引用的資料要找到通用的描述方式,設定過程要簡單、精準、完備;

2.對操作鍵盤錄入、操作邏輯或滑鼠邏輯要適合母語應用,合理簡潔。

不要小看這兩個簡單的原則,它會遍布到系統的各個角落,會在很多介面的設計中表現為類似**的不斷重複。如果沒有系統化的構思,由此產生的**工作量可以佔到系統的30%左右。僅以乙個簡單的文字框為例:它在錄入過程中會引發幾個或十幾個各不相同的需求狀態或操作邏輯,這些需求在針對到具體場景時還會衍生出一系列的變化。如果只是針對每個例項來編寫**肯定是個痛苦不堪的過程,原因是它被引用的次數太多了。如果我們能把這些需求封裝起來,就能遮蔽掉絕大多數的例項級**,又能使其功能與作用有所改善。如果封裝得好就能像使用系統控制項一樣簡便,但其功能性卻大大加強。

實際上,能夠用來支援錄入(或展示)資料的控制項可能很多,但使用頻率最高、體現使用者需求最直接、最複雜的並不是太多,我們就以這些典型控制項作為自定義封裝的樣本,從中領悟在設計過程中的封裝是如何被付諸實踐的。其中要重點體會的是如何抽象需求、如何設定屬性、如何構造方法並在恰當的時機呼叫。善於發現並善於凝練需求是提公升設計能力的關鍵,而其**實現只是實現構思的載體。

資料錄入是應用的基礎,構造資料錄入控制項則是系統設計的基礎。開發環境提供的控制項本身就是一種基本的分類與封裝,但其功能性遠遠不能滿足應用要求,自定義封裝是完善其功能、方法與操作邏輯的客觀需要。

在我們了解並實現了自定義的控制項封裝之後,就可以把這些設計直接引入自己的專案中應用,相信它們能夠給你帶來以一種全新的感受。

Android自定義控制項之自定義組合控制項(三)

前兩篇介紹了自定義控制項的基礎原理android自定義控制項之基本原理 一 自定義屬性android自定義控制項之自定義屬性 二 今天重點介紹一下如何通過自定義組合控制項來提高布局的復用,降低開發成本,以及維護成本。1.第一種方式 直接在每個xml布局中寫相同的標題欄布局 這種方式沒有任何布局復用的...

Android自定義控制項之自定義組合控制項

前兩篇介紹了自定義控制項的基礎原理android自定義控制項之基本原理 一 自定義屬性android自定義控制項之自定義屬性 二 今天重點介紹一下如何通過自定義組合控制項來提高布局的復用,降低開發成本,以及維護成本。1.第一種方式 直接在每個xml布局中寫相同的標題欄布局 這種方式沒有任何布局復用的...

Android自定義控制項之自定義View 二

效果如下圖 1 自定義ringview繼承view新增其構造方法並建立畫筆 public class ringview extends view protected boolean isrunning false public ringview context context public ring...