国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

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

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

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

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

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

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

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

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

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

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

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

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

一般的,我們會(huì)考慮將上面的那玩意兒抽象化,因?yàn)榻▊€(gè)工廠來造機(jī)器比一個(gè)個(gè)單獨(dú)地造要簡(jiǎn)單的多.我們不希望直接的造單獨(dú)的計(jì)程器;
換句話,我們希望所有的計(jì)程器都能由一個(gè)模型造出.這個(gè)模式(如果你喜歡,叫它計(jì)程器工廠)對(duì)應(yīng)于我們所稱的一個(gè)類,每一個(gè)由它生成的單獨(dú)的計(jì)程器(或由工廠造出)對(duì)應(yīng)于一個(gè)對(duì)象.許多面向?qū)ο蟮恼Z言要求我們?cè)趽碛幸粋€(gè)新的對(duì)象之前定義它的類,但Ruby不是如此.

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