麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

抽象的進(jìn)步

2019-11-18 13:22:49
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

  所有編程語(yǔ)言的最終目的都是提供一種“抽象”方法。一種較有爭(zhēng)議的說(shuō)法是:解決問題的復(fù)雜程度直接取決于抽象的種類及質(zhì)量。這兒的“種類”是指預(yù)備對(duì)什么進(jìn)行“抽象”?匯編語(yǔ)言是對(duì)基礎(chǔ)機(jī)器的少量抽象。后來(lái)的許多“命令式”語(yǔ)言(如FORTRAN,BASIC和C)是對(duì)匯編語(yǔ)言的一種抽象。與匯編語(yǔ)言相比,這些語(yǔ)言已有了長(zhǎng)足的進(jìn)步,但它們的抽象原理依然要求我們著重考慮計(jì)算機(jī)的結(jié)構(gòu),而非考慮問題本身的結(jié)構(gòu)。在機(jī)器模型(位于“方案空間”)與實(shí)際解決的問題模型(位于“問題空間”)之間,程序員必須建立起一種聯(lián)系。這個(gè)過程要求人們付出較大的精力,而且由于它脫離了編程語(yǔ)言本身的范圍,造成程序代碼很難編寫,而且要花較大的代價(jià)進(jìn)行維護(hù)。由此造成的副作用便是一門完善的“編程方法”學(xué)科。
  為機(jī)器建模的另一個(gè)方法是為要解決的問題制作模型。對(duì)一些早期語(yǔ)言來(lái)說(shuō),如LISP和APL,它們的做法是“從不同的角度觀察世界”——“所有問題都?xì)w納為列表”或“所有問題都?xì)w納為算法”。PROLOG則將所有問題都?xì)w納為決策鏈。對(duì)于這些語(yǔ)言,我們認(rèn)為它們一部分是面向基于“強(qiáng)制”的編程,另一部分則是專為處理圖形符號(hào)設(shè)計(jì)的。每種方法都有自己非凡的用途,適合解決某一類的問題。但只要超出了它們力所能及的范圍,就會(huì)顯得非常笨拙。
  面向?qū)ο蟮某绦蛟O(shè)計(jì)在此基礎(chǔ)上則跨出了一大步,程序員可利用一些工具表達(dá)問題空間內(nèi)的元素。由于這種表達(dá)非常普遍,所以不必受限于特定類型的問題。我們將問題空間中的元素以及它們?cè)诜桨缚臻g的表示物稱作“對(duì)象”(Object)。當(dāng)然,還有一些在問題空間沒有對(duì)應(yīng)體的其他對(duì)象。通過添加新的對(duì)象類型,程序可進(jìn)行靈活的調(diào)整,以便與特定的問題配合。所以在閱讀方案的描述代碼時(shí),會(huì)讀到對(duì)問題進(jìn)行表達(dá)的話語(yǔ)。與我們以前見過的相比,這無(wú)疑是一種更加靈活、更加強(qiáng)大的語(yǔ)言抽象方法。總之,OOP答應(yīng)我們根據(jù)問題來(lái)描述問題,而不是根據(jù)方案。然而,仍有一個(gè)聯(lián)系途徑回到計(jì)算機(jī)。每個(gè)對(duì)象都類似一臺(tái)小計(jì)算機(jī);它們有自己的狀態(tài),而且可要求它們進(jìn)行特定的操作。與現(xiàn)實(shí)世界的“對(duì)象”或者“物體”相比,編程“對(duì)象”與它們也存在共通的地方:它們都有自己的特征和行為。
  Alan Kay總結(jié)了Smalltalk的五大基本特征。這是第一種成功的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言,也是java的基礎(chǔ)語(yǔ)言。通過這些特征,我們可理解“純粹”的面向?qū)ο蟪绦蛟O(shè)計(jì)方法是什么樣的:
  (1) 所有東西都是對(duì)象。

  可將對(duì)象想象成一種新型變量;它保存著數(shù)據(jù),但可要求它對(duì)自身進(jìn)行操作。理論上講,可從要解決的問題身上提出所有概念性的組件,然后在程序中將其表達(dá)為一個(gè)對(duì)象。
  (2) 程序是一大堆對(duì)象的組合。

  通過消息傳遞,各對(duì)象知道自己該做些什么。為了向?qū)ο蟀l(fā)出請(qǐng)求,需向那個(gè)對(duì)象“發(fā)送一條消息”。更具體地講,可將消息想象為一個(gè)調(diào)用請(qǐng)求,它調(diào)用的是從屬于目標(biāo)對(duì)象的一個(gè)子例程或函數(shù)。
  (3) 每個(gè)對(duì)象都有自己的存儲(chǔ)空間,可容納其他對(duì)象。

  或者說(shuō),通過封裝現(xiàn)有對(duì)象,可制作出新型對(duì)象。所以,盡管對(duì)象的概念非常簡(jiǎn)單,但在程序中卻可達(dá)到任意高的復(fù)雜程度。
  (4) 每個(gè)對(duì)象都有一種類型。

  根據(jù)語(yǔ)法,每個(gè)對(duì)象都是某個(gè)“類”的一個(gè)“實(shí)例”。其中,“類”(Class)是“類型”(Type)的同義詞。一個(gè)類最重要的特征就是“能將什么消息發(fā)給它?”。
  (5) 同一類所有對(duì)象都能接收相同的消息。

  這實(shí)際是別有含義的一種說(shuō)法,大家不久便能理解。由于類型為“圓”(Circle)的一個(gè)對(duì)象也屬于類型為“外形”(Shape)的一個(gè)對(duì)象,所以一個(gè)圓完全能接收外形消息。這意味著可讓程序代碼統(tǒng)一指揮“外形”,令其自動(dòng)控制所有符合“外形”描述的對(duì)象,其中自然包括“圓”。這一特性稱為對(duì)象的“可替換性”,是OOP最重要的概念之一。
  一些語(yǔ)言設(shè)計(jì)者認(rèn)為面向?qū)ο蟮某绦蛟O(shè)計(jì)本身并不足以方便解決所有形式的程序問題,提倡將不同的方法組合成“多形程序設(shè)計(jì)語(yǔ)言”(注釋)。
  [注釋]:參見Timothy Budd編著的《Multiparadigm Programming in Leda》,Addison-Wesley 1995年出版。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 极品销魂一区二区三区 | 成人精品一区二区三区中文字幕 | 精品国产乱码久久久久久丨区2区 | 亚洲电影免费观看国语版 | 羞羞网站在线观看入口免费 | 欧日韩 | 毛片在线免费视频 | 成人在线免费小视频 | 一级成人欧美一区在线观看 | 综合日韩欧美 | 泰剧19禁啪啪无遮挡大尺度 | 日产精品一区二区三区在线观看 | 91麻豆精品国产91久久久更新资源速度超快 | 国产欧美日韩视频在线观看 | 成人福利视频导航 | 国产精品区一区二区三区 | 日韩视频在线观看免费视频 | www.99热精品 | 九艹在线 | 久久一本日日摸夜夜添 | 欧美中文字幕一区二区三区亚洲 | 欧美成人一区二区三区电影 | 成人福利在线免费观看 | 免费亚洲视频在线观看 | 狠狠干最新网址 | 国产精品一区99 | 国产成人高清在线观看 | 色域tv| 成人免费福利 | 久久精品一区二区三区四区五区 | 欧美高清一级片 | 蜜桃网站在线 | 国产韩国精品一区二区三区久久 | 91成人免费网站 | 国产一区二区视频精品 | 免费国产自久久久久三四区久久 | 精品av在线播放 | 免费国产在线视频 | 龙床上的呻吟高h | 毛片a级毛片免费播放100 | 黑人一区二区三区四区五区 |