• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Kisser Leon

            這個kisser不太冷
            posts - 100, comments - 102, trackbacks - 0, articles - 0

            談談面向對象

            Posted on 2007-04-09 20:52 kk 閱讀(533) 評論(0)  編輯 收藏 引用 所屬分類: IT隨感

            面向對象是當前計算機界關心的重點,它是90年代軟件開發(fā)方法的主流。面向對象的概念和應用已超越了程序設計和軟件開發(fā),擴展到很寬的范圍。如數據庫系統、交互式界面、應用結構、應用平臺、分布式系統、網絡管理結構、CAD技術、人工智能等領域。

            不過我想上面說的應該是國外吧!不知道國內的90年代OO是否風靡啊。偶是21世紀才開始接觸電腦的。記得那時候老師在給我們上C++課的時候,拼命說什么C++好啊,面向對象啊,大說了一通。總之,給我的感覺是,OO才開始風靡。后來,學校里又開了一門課,叫著面向對象×××什么什么的,忘了,反正就是在講面向對象。老師也是一個勁的給我們灌輸OO思想,叫我們區(qū)別好OOOP的差別。不知道為什么會有這么一段,可能想說國內的技術比國外的慢太多了。很多時候,其實,語言也是一種原因!畢竟國內好的翻譯太少了!而且不能總是等侯杰大叔叔來翻譯啊。記得以前在論壇上看到一句“名言”啊:不要看國內作者寫的書,不要看國內譯者翻譯的書,括弧(侯杰除外)。看起來似乎有點偏激,不過卻不無道理啊!很多的作者和譯者都是垃圾啊!!!!偶深受其害,因為偶很愛買書(看書就。。。呵呵)。記得我去年看重構的時候,我覺得這個名詞還是很新的啊,看了那本書之后才發(fā)現原來這本書寫于上個世紀,昏迷啊,國內的技術太落后了。偶的e文也太落后了!要多關注關注國外的新技術。

            扯遠了。回來再談OO

            OO,很早就已經學過了,很早以前就以為自己懂了,今天突然發(fā)現自己還不懂什么是OO,為什么要OO?以前的想法可能太簡單了一點,認為只要是全都是對象就是OO了。

            沒錯,在OO的思想中,所有一切東西都是O!但是,我發(fā)現在實際編程中,我連這一點都無法保證!而且,我也無法做到理論聯系實際,把理論應用到實際。在實際運用中,幾乎沒有考慮過O的問題。更多的時候是在考慮什么模塊怎么劃分,一個模塊應該有幾個類阿,每個類都有些什么功能阿。但是我沒有把那個類作為一個對象來考慮,或者說沒有把那個類作為一類抽象的對象來考慮。需要什么東西就直接往里面加。不管加的東西跟那個類有沒有關系,都往里面塞!行為相當惡劣。簡直就是OP啊,每個類都成了一組functionwrapper了,相當悲哀!不管function是否應該屬于該類(或者說該對象)。搞不好什么時候就設計出個:一個人有爬的行為!(結果肯定會被一群人狂揍哦)。

            OO有什么優(yōu)點呢?為什么要OO

            OO使人們得變成與實際的世界更加接近,所有的對象被賦予屬性和方法,結果編程就更加富有人性化。

            維護簡單模塊化是面向對象編程中的一個特征。實體被表示為類和同一名字空間中具有相同功能的類,我們可以在名字空間中添加一個類而不會影響該名字空間的其他成員。

            可擴充性面向對象編程從本質上支持擴充性。如果有一個具有某種功能的類,就可以很快地擴充這個類,創(chuàng)建一個具有擴充的功能的類。

            代碼重用,由于功能是被封裝在類中的,并且類是作為一個獨立實體而存在的,提供一個類庫就非常簡單了。事實上,任何一個.NET Framework編程語言的程序員都可以使用.NET Framework類庫,.NET Framework類庫提供了很多的功能。更令人高興的是,我們可以通過提供符合需求的類來擴充這些功能。

            在實際的編程中你有考慮過這些問題嗎?Sorry,偶是沒有考慮過。基本上是,維護很難!擴充相對較容易,因為直接拷貝過來,在修改(這有算是OO嗎?顯然否)。這種根本就是沒有利用到面向對象中的重用性。擴充起來也不容易,需要什么功能就胡亂繼承一通,搞得類的層次太多了,無形之中給后人維護帶來了極大的困難。出現這些情況的原因是什么呢?前面的代碼設計的不夠好。面向對象的三大特點:封裝,繼承和多態(tài)有沒有都考慮進來?面向對象是一種思想,是我們考慮事情的方法,通常表現為我們是將問題的解決按照過程方式來解決呢,還是將問題抽象為一個對象來解決它。很多情況下,我們會不知不覺的按照過程方式來解決它,而不是考慮將要解決問題抽象為對象去解決它。有些人打著面向對象的幌子,干著過程編程的勾當。

            OOA呢?OOA有什么幫助呢?

            OOA的主要優(yōu)點

            ·         加強了對問題域和系統責任的理解;

            ·         改進與分析有關的各類人員之間的交流;

            ·         對需求的變化具有較強的適應性;

            ·         支持軟件復用。

            ·         貫穿軟件生命周期全過程的一致性。

            ·         實用性;

            ·         有利于用戶參與。

            OOA方法的基本步驟
             
            在用OOA具體地分析一個事物時,大致上遵循如下五個基本步驟:
            第一步,確定對象和類。這里所說的對象是對數據及其處理方式的抽象,它反映了系統保存和處理現實世界中某些事物的信息的能力。類是多個對象的共同屬性和方法集合的描述,它包括如何在一個類中建立一個新對象的描述。

            第二步,確定結構(structure)。結構是指問題域的復雜性和連接關系。類成員結構反映了泛化-特化關系,整體-部分結構反映整體和局部之間的關系。

            第三步,確定主題(subject)。主題是指事物的總體概貌和總體分析模型。

            第四步,確定屬性(attribute)。屬性就是數據元素,可用來描述對象或分類結構的實例,可在圖中給出,并在對象的存儲中指定。

            第五步,確定方法(method)。方法是在收到消息后必須進行的一些處理方法:方法要在圖中定義,并在對象的存儲中指定。對于每個對象和結構來說,那些用來增加、修改、刪除和選擇一個方法本身都是隱含的(雖然它們是要在對象的存儲中定義的,但并不在圖上給出),而有些則是顯示的

             

            OO是個好東西啊。要理解OO的思想,并能夠在實際中運用它。不過OO現在已經不是最熱的了,在現在web2.0的年代,基于網頁上的應用會更火啊。你開發(fā)個軟件,如果是單機版的,你都不好意思說!如果是C/S架構的,你也是會被BS的。呵呵。現在什么SOAAJAX那個火 啊!SOAservice oriented architectureAJAX是什么東東?中間件、CRPCPM等等,現在也是牛一B啊。學無止盡,學不能曬網啊;跟上時代的腳步,對新技術保持必要的觸覺。恩。

            以上純屬胡言亂語,部分摘自網上。如果有興趣,偶歡迎大家一起來討論啊。

            精品久久无码中文字幕| 久久99免费视频| 午夜天堂精品久久久久| 九九久久自然熟的香蕉图片| 午夜不卡888久久| 狠狠色丁香久久婷婷综合| 成人久久精品一区二区三区 | 99久久国语露脸精品国产| 久久国产乱子伦精品免费强| 四虎国产精品成人免费久久| 免费观看久久精彩视频| 久久久久久久精品成人热色戒| 国产精品久久久久无码av| 久久亚洲AV成人无码软件| 色综合久久综精品| 精品永久久福利一区二区 | 久久精品国产第一区二区三区| 香蕉久久一区二区不卡无毒影院| 99久久精品免费看国产一区二区三区 | a高清免费毛片久久| 亚洲国产精品成人久久| 无码人妻少妇久久中文字幕| 青青草国产精品久久| 久久久精品人妻一区二区三区四| 久久久久国产一级毛片高清板| 亚洲国产精品久久久久| 久久99精品久久只有精品| 久久人人妻人人爽人人爽| 久久婷婷国产剧情内射白浆| 久久精品青青草原伊人| 亚洲国产高清精品线久久 | 久久久精品国产Sm最大网站| 久久国产精品77777| 狠狠色丁香婷综合久久| 人妻精品久久久久中文字幕69| 亚洲AV无码久久精品成人| 伊人久久大香线焦AV综合影院| 亚洲级αV无码毛片久久精品| 亚洲精品美女久久777777| 77777亚洲午夜久久多喷| 国产精品久久久久久|