亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

ディレクトリ 検索
Ruby用戶指南 3、開始 4、簡單的例子 5、字符串 6、正則表達式 7、數(shù)組 8、回到那些簡單的例子 9、流程控制 10、迭代器 11、面向?qū)ο笏季S 12、方法 13、類 14、繼承 15、重載方法 16、訪問控制 17、單態(tài)方法 18、模塊 19、過程對象 20、變量 21、全局變量 22、實變量 23、局部變量 24、類常量 25、異常處理:rescue 26、異常處理:ensure 27、存取器 28、對象的初始化 29、雜項 RGSS入門教程 1、什么是RGSS 2、開始:最簡單的腳本 3、數(shù)據(jù)類型:數(shù)字 4、數(shù)據(jù)類型:常量與變量 5、數(shù)據(jù)類型:字符串 6、控制語句:條件分歧語句 7、控制語句:循環(huán) 8、函數(shù) 9、對象與類 10、顯示圖片 11、數(shù)組 12、哈希表(關(guān)聯(lián)數(shù)組) 13、類 14、數(shù)據(jù)庫 15、游戲?qū)ο?/a> 16、精靈的管理 17、窗口的管理 18、活動指令 19、場景類 Programming Ruby的翻譯 Programming Ruby: The Pragmatic Programmer's Guide 前言 Roadmap Ruby.new 類,對象和變量 容器Containers,塊Blocks和迭代Iterators 標準類型 深入方法 表達式Expressions 異常,捕捉和拋出(已經(jīng)開始,by jellen) 模塊 基本輸入輸出 線程和進程 當遭遇挫折 Ruby和它的世界 Ruby和Web開發(fā) Ruby Tk Ruby 和微軟的 Windows 擴展Ruby Ruby語言 (by jellen) 類和對象 (by jellen) Ruby安全 反射Reflection 內(nèi)建類和方法 標準庫 OO設(shè)計 網(wǎng)絡和Web庫 Windows支持 內(nèi)嵌文檔 交互式Ruby Shell 支持 Ruby參考手冊 Ruby首頁 卷首語 Ruby的啟動 環(huán)境變量 對象 執(zhí)行 結(jié)束時的相關(guān)處理 線程 安全模型 正則表達式 字句構(gòu)造 程序 變量和常數(shù) 字面值 操作符表達式 控制結(jié)構(gòu) 方法調(diào)用 類/方法的定義 內(nèi)部函數(shù) 內(nèi)部變量 內(nèi)部常數(shù) 內(nèi)部類/模塊/異常類 附加庫 Ruby變更記錄 ruby 1.6 特性 ruby 1.7 特性 Ruby術(shù)語集 Ruby的運行平臺 pack模板字符串 sprintf格式 Marshal格式 Ruby FAQ Ruby的陷阱
テキスト

面向?qū)ο笫且粋€挺讓人迷惑的措辭.叫一切東西都是面向?qū)ο髸寗e人覺得你很時髦.?Ruby?聲稱自己是面向?qū)ο蟮哪_本語言;但究竟什么才是"面向?qū)ο???

我們已經(jīng)有了各種各樣的答案,但所有這些恐怕都歸結(jié)于同一件事.與其快速地概括它,不如讓我們先花點兒時間考慮一下傳統(tǒng)的編程模式.

傳統(tǒng)意義上,一個編程問題從出現(xiàn)的各種數(shù)據(jù),以及處理數(shù)據(jù)的過程(procedures)著手.在這一模式下,數(shù)據(jù)是呆板,被動和無用的;它完全的求助于那個體積龐大的,主動的,邏輯性的,全能的過程體.

這一做法的問題在于程序是由程序員寫的,而他們僅僅能在工作中記下為數(shù)不多的細節(jié).而隨著工程的加大,它的核心也增長到難以記住整個工程是如何工作.細微的失誤和敲打錯誤變得越來越容易造成難以發(fā)現(xiàn)的臭蟲(bugs).繁雜和意外的干擾開始在核心內(nèi)出現(xiàn),維護也變得像企圖抓住一只憤怒的烏賊還要不讓它的觸須碰到你臉.當然,對于傳統(tǒng)方法,我們也有很多指導你去縮小和檢測這些臭蟲的方法,但更好的解決方法是徹底的改變我們的工作方式.

而面向?qū)ο笏龅木褪亲屛覀儗F(xiàn)實的,重復性的邏輯工作交給數(shù)據(jù)本身;它將我們對數(shù)據(jù)的概念從被動變?yōu)橹鲃?換種說法:

我們不再讓數(shù)據(jù)像一個開口的盒子一樣讓我們隨意地伸手進去并取出東西.?
我們將其看作一個封口的并帶有開關(guān)和刻度盤的機器.?

上面所說的"機器"的內(nèi)部可能相當簡單或者復雜;我們不能從外面窺視,我們也不能允許自己打開機器外殼(除非我們確實發(fā)現(xiàn)其中有誤),因此我們只需要通過撥動開關(guān),讀取刻度來操作數(shù)據(jù).機器一旦建好,我們便不再必須考慮它是如何運轉(zhuǎn).

也許,你會覺得這是在無端的增加自己的工作量,但這一方法可以讓我們有效避免事情向壞的方向發(fā)展.

讓我們從一個簡單的毫無實際價值卻至少能說明部分概念的例子開始.你的汽車有個計程器.它的工作就是記錄從上次復位以來的行車路
程.我們將如何用編程語言建模?在C里面,這個計程器也許就是個數(shù)值變量,大概是float類型的.這個程序會通過每隔一定的行程增加它的值,在合適的時候也會復位為零.哪里會出問題呢?程序里的一個臭蟲會無端的向這個變量賦一個偽值,這可以由某些未預料到的原因而發(fā)生.任何有過C編程經(jīng)驗的人都會知道那會花掉數(shù)小時或數(shù)天來除掉這個當找出時簡單得荒唐無比的臭蟲.(找出它的那一刻往往會使勁地拍拍前額)

同樣的問題在使用面向?qū)ο髸r會從一個截然不同的角度著手.當設(shè)計它時,程序員會問的頭一件事不會是"什么是最類似它的數(shù)據(jù)類型?"而是"究竟這玩意兒是干什么的?"這不同之處引出了一個稍帶難度的東西.我們需要花點兒時間確定到底計程器是用來干什么的,外部世界希望怎樣操縱它.然后我們決定構(gòu)造一個允許我們增加,復位,讀值的小機器,再就沒別的了.

我們并未提供一種用于向計程器賦任意值的方法:為什么?因為我們都知道計程器不是那樣工作的.你只能向計程器做那定義好的幾件事,而且是那些允許我們?nèi)プ龅氖?因此,如果程序里的別的什么東西錯誤地向其賦值(比如,車的溫度控制器),這立刻意味著錯誤的發(fā)生.當運行它的時候(或者當編譯時,視語言的性質(zhì)而定)我們便會被告之禁止向計程器這個對象賦任意值.給出的消息也許并非如此清楚,但它應該接近其真實原因.這并不防止錯誤的發(fā)生,是吧?但它很快給我們直接指出了問題所在.這只是OO編程會為我們節(jié)約很多時間的許多方法中的一個.

一般的,我們會考慮將上面的那玩意兒抽象化,因為建個工廠來造機器比一個個單獨地造要簡單的多.我們不希望直接的造單獨的計程器;
換句話,我們希望所有的計程器都能由一個模型造出.這個模式(如果你喜歡,叫它計程器工廠)對應于我們所稱的一個類,每一個由它生成的單獨的計程器(或由工廠造出)對應于一個對象.許多面向?qū)ο蟮恼Z言要求我們在擁有一個新的對象之前定義它的類,但Ruby不是如此.

當然運用面對對象語言并不意味著就會有好的面對對象設(shè)計.實際上,用任何語言都有寫出模糊,粗心,多蟲,低造詣及不穩(wěn)定的代碼.Ruby能為你做的(作為反例,特別是C++)是讓OO編程的實踐足夠自然,即使你僅僅在小范圍內(nèi)使用也不會感到必須憑借丑陋的代碼去提高效率.我們將會隨著這本手冊深入地討論Ruby實現(xiàn)這些預定目標的機制;下一章將是"開關(guān)和刻度表"(對象方法),然后我們將討論到"工廠"(類).你還會跟我們來嗎? 版權(quán)聲明:RUBY文檔中心的所有文章標明[原創(chuàng)]的均為本站作品,版權(quán)屬RUBY中文化計劃,若轉(zhuǎn)載請注明;標明[翻譯]的其外文版權(quán)歸原作者,譯文版權(quán)屬RUBY中文化計劃;標明[轉(zhuǎn)貼]的,若原作者感到侵犯了他的著作權(quán),那么請及時跟主持人聯(lián)系,我們會盡快更正。 ?
前の記事: 次の記事: