iT邦幫忙

DAY 10
5

程式設計心法系列 第 10

程式設計心法:9.資料型別--結構化資料

  • 分享至 

  • xImage
  •  

Structures 是一種運用現有型別所產生出來的一種新的型別,一般也稱作 Structured Data。

他的使用方式就像物件導向的物件一樣,定義好後,可以在程式設計的時候,使用到 Code Insight 的功能,與物件不一樣的是,Structured Data 不需要透過 New 的方式產生,宣告後即可使用。

對於變數的運用來說,更有彈性也更能理解。
在使用 Structured Data 的好處有以下幾點:

.確立資料之間的關係
Structured Data 可以將相關的資料包裝成一個獨立的個體,這樣我們在城市中就可以很容易判斷出個個資料之間的關係,以書中的例子來看

Name=InputName
Address=InputAddress
Phone=InputPhone
Title=InputTitle
Department=InputDepartment
Bonus=InputBonus

這些資料看起來都像是有關連的,但是 Name、Address、Phone 是屬於員工的資料,而 Title、Department、Bonus 則屬於經營者相關的資料,上述的程式碼,無法給我們相關的訊息可以做判別。如果改成以下的方式:

Employee.Name=InputName
Employee.Address=InputAddress
Employee.Phone=InputPhone

Supervisior.Title=InputTitle
Supervisior.Department=InputDepartment
Supervisior.Bonus=InputBonus

這樣我們就可以很容易判別出個變數之間的意義與關連性了。

.簡化對資料的操作
採用 Structured Data 除了方便、程式較短之外,更不會遺漏掉任何單一的資料項目(如上面的圖所示)。而且如果要將兩組資料做互換,採用 Structured Data 的優點更容易顯示出來:

Type Employee
  Name as String
  Address as String
  Phone as String
  SSN as String
  Sex as String
  Salary as String
End Type

Dim NewEmployee as Employee
Dim OldEmployee as Employee
Dim PrevOldEmployee as Employee

我們在程式中,只要寫很簡單的程式碼,就可以做資料的轉換了

PrevOldEmployee=OldEmployee
OldEmployee=NewEmployee
NewEmployee=PrevOldEmployee

如果不是用這種方式,那我們就得針對每一個變數的項目進行資料的交換,這樣就會很費工,寫起來也不簡潔明瞭。

.簡化函式傳遞的引數
同樣的將這種概念運用在函式的引數傳遞,也更能顯示出他的好處

' 未使用 Structured Data
HardWayRoutine(Name, Address, Phone, SSN, Sex, Salary)
' 使用 Structured Data
EasyWayRoutine(EmployeeRec)

既然 Structured Data 這麼好用,那我就將所有的資料集合成為一個巨大的資料結構,這樣不是更好,程式更容易寫?但是這樣就又失去關連性的意義了(全部擠在一起,就如同沒有使用一樣),我們應該做的是,函式需要什麼資料,就給他什麼資料即可。

.降低維護的成本
我們知道宣告變數的時候,我們會將他盡量的放在程式的前面(當然 Basic 允許隨時宣告變數),這樣將變數宣告與程式碼分開,對於程式的撰寫會比較容易維護,善用 Structured Data 確實能夠帶來好處,例如當我們發現少了什麼變數,或者要新增變數的時候,只要修改 Structured Data 的資料結構,就可以很快速、很容易的引用了。

YA! 今天鐵人大富翁終於抽到獎了!加油!

本系列文章


上一篇
程式設計心法:8.資料型別--陣列
下一篇
程式設計心法:10.資料型別--抽象資料型別
系列文
程式設計心法31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
fillano
iT邦超人 1 級 ‧ 2009-10-16 10:29:24

真好,我一直被扣錢...

0
海綿寶寶
iT邦大神 1 級 ‧ 2009-10-16 11:09:04

小奬都給你抽
記得大奬留給我嘿..^_^

0
pantc328
iT邦高手 1 級 ‧ 2009-10-18 20:03:49

我想知道
結構化資料.
半結構化資料.
非結構化資料.

jamesjan iT邦高手 1 級 ‧ 2009-10-19 13:05:05 檢舉

小弟僅以自身接觸過的軟體/系統來說明
結構化的資料,就像 RDBMS 的資料一樣,需經過事先規劃好儲存的方式,如果沒有相對應的欄位,或儲存的形態不對,則無法儲存
半結構化的資料,就好像 Notes 的 Database 一樣,可以事先規劃好儲存的欄位,但是也可以動態的增加不存在的欄位,或改變已存在欄位的屬性
非結構化資料,就很多了,像影音、文件、影像都屬於這類的資料,不需要事先規劃好格式,資料可以動態產生

我要留言

立即登入留言