iT邦幫忙

DAY 11
1

程式設計心法系列 第 11

程式設計心法:10.資料型別--抽象資料型別

  • 分享至 

  • xImage
  •  

今天要介紹的型別不是一種型別(驚!那今天要講甚麼?好抽象喔!)

對!就是講抽象資料型別(Abstract Data Type)!
為什麼說他不是一種真的資料型別,因為他本身並不提供另外的型別,而他只是一種概念,程式寫法的概念。

還是好模糊喔!

嗯,如果我們用物件的概念去解釋他(待物件導向單元再做解釋),就會較容易了解了。就是將資料及資料的運算方法透過一個類似模組的方式來完成,也就是說,我們可以利用模組來實作抽象資料型別。

例如:SetCurrentFontToBold() 就會比直接指定 Font 的 Attribute 來得容易許多,也不用去記每一個資料的屬性,對程式設計來說,不失是一種好的方法。
所以使用抽象資料型別的好處是:

.可以隱藏細部的實作方法
如上述所提的例子,如果字型的資料結構改變,則因為我們在程式中是以抽象型別的常是來處理,所以只要改變常式中的內部處理方式即可,對於呼叫常式的程式並不需要去異動他

.程式不容易出錯
透過抽象資料型別的另一個好處是,我們不用再去寫冗長的程式碼,也不需一一去記住該調整哪個資料欄位的屬性,該如何去設定他的值,這些細節都被封裝在抽象型別的常式中,這樣出錯的機率就可以大大的降低了。

.程式具有自我註解的能力
如上面 SetFontToBold() 的例子,這樣的程式碼,一看就知道是用來做什麼的,簡潔有力,容易理解。

.不再需要再常式間傳遞資料
當然,我們透過模組的函式呼叫也一樣可以達到同樣的效果,但是您可能需要將資料設成全域變數或者是透過參數傳遞來達成。

本系列文章


上一篇
程式設計心法:9.資料型別--結構化資料
下一篇
程式設計心法:11.變數命名--命名的考量因素
系列文
程式設計心法31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
海綿寶寶
iT邦大神 1 級 ‧ 2009-10-17 15:43:31

真的好抽象 @_@

jamesjan iT邦高手 1 級 ‧ 2009-10-18 10:59:07 檢舉

沒錯!到現在我都還覺得抽象不已...XD

0
fillano
iT邦超人 1 級 ‧ 2009-10-17 17:23:05

抽象型別是像java的interface這一類的東西嗎?

jamesjan iT邦高手 1 級 ‧ 2009-10-18 11:21:08 檢舉

在書中所提到的,物件本身就是一種抽象的資料型別。
像我們對於物件的屬性會以 Private 的方式來做為內部運算時使用,
避免外部的程式直接存取物件的屬性資料。
而與外界溝通時,則另外建構 Public Method 來做為溝通的橋樑,

private m_A

Public getA() return m_A;
Public setA(v) m_A=v;

這個功用則與他的抽象資料型別的概念較為類似。

我要留言

立即登入留言