日本中文字幕乱码免费_国产区第一页_欧美热妇_欧美做爰一区二区三区_另类小说图片综合网_美女裸体黄网站18禁免费看影站_日韩无人区码卡1卡2卡_《大荫蒂女人》电影

面向?qū)ο?- 編程范式

面向?qū)ο?/a> - Object?Oriented是軟件開發(fā)方法,一種編程范式。面向?qū)ο蟮母拍詈蛻?yīng)用已超越了程序設(shè)計(jì)和軟件開發(fā),擴(kuò)展到如數(shù)據(jù)庫系統(tǒng)、交互式界面、應(yīng)用結(jié)構(gòu)、應(yīng)用平臺(tái)、分布式系統(tǒng)、網(wǎng)絡(luò)管理結(jié)構(gòu)、CAD技術(shù)、人工智能等領(lǐng)域。面向?qū)ο笫且环N對(duì)現(xiàn)實(shí)世界理解和抽象的方法,是計(jì)算機(jī)編程技術(shù)發(fā)展到一定階段后的產(chǎn)物。

面向?qū)ο笫窍鄬?duì)于面向過程來講的,面向?qū)ο蠓椒?,把相關(guān)的數(shù)據(jù)和方法組織為一個(gè)整體來看待,從更高的層次來進(jìn)行系統(tǒng)建模,更貼近事物的自然運(yùn)行模式。

面向?qū)ο?- 編程范式

早期發(fā)展

早期的計(jì)算機(jī)編程是基于面向過程的方法,例如實(shí)現(xiàn)算術(shù)運(yùn)算1+1+2?=?4,通過設(shè)計(jì)一個(gè)算法就可以解決當(dāng)時(shí)的問題。隨著計(jì)算機(jī)技術(shù)的不斷提高,計(jì)算機(jī)被用于解決越來越復(fù)雜的問題。一切事物皆對(duì)象,通過面向?qū)ο蟮姆绞?,將現(xiàn)實(shí)世界的事物抽象成對(duì)象,現(xiàn)實(shí)世界中的關(guān)系抽象成類、繼承,幫助人們實(shí)現(xiàn)對(duì)現(xiàn)實(shí)世界的抽象與數(shù)字建模。通過面向?qū)ο蟮姆椒?,更利于用人理解的方式?duì)復(fù)雜系統(tǒng)進(jìn)行分析、設(shè)計(jì)與編程。同時(shí),面向?qū)ο竽苡行岣呔幊痰男剩ㄟ^封裝技術(shù),消息機(jī)制可以像搭積木一樣快速開發(fā)出一個(gè)全新的系統(tǒng)。面向?qū)ο笫侵敢环N程序設(shè)計(jì)范型,同時(shí)也是一種程序開發(fā)的方法。對(duì)象是類的具體化實(shí)現(xiàn)。它將對(duì)象作為程序的基本單元,將程序和數(shù)據(jù)封裝其中,以提高軟件的重用性、靈活性和擴(kuò)展性。

面向?qū)ο蟮乃枷胍呀?jīng)涉及到軟件開發(fā)的各個(gè)方面。如,面向?qū)ο蟮姆治觯∣OA,Object?Oriented?Analysis),面向?qū)ο蟮脑O(shè)計(jì)(OOD,Object?Oriented?Design)、以及我們經(jīng)常說的面向?qū)ο蟮木幊虒?shí)現(xiàn)(OOP,Object?Oriented?Programming)。

背景

面向?qū)ο笫窃诮Y(jié)構(gòu)化設(shè)計(jì)方法出現(xiàn)很多問題的情況下應(yīng)運(yùn)而生的。結(jié)構(gòu)化設(shè)計(jì)方法求解問題的基本策略是從功能的角度審視問題域。它將應(yīng)用程序看成實(shí)現(xiàn)某些特定任務(wù)的功能模塊,其中子過程是實(shí)現(xiàn)某項(xiàng)具體操作的底層功能模塊。在每個(gè)功能模塊中,用數(shù)據(jù)結(jié)構(gòu)描述待處理數(shù)據(jù)的組織形式,用算法描述具體的操作過程。面對(duì)日趨復(fù)雜的應(yīng)用系統(tǒng),這種開發(fā)思路在下面幾個(gè)方面逐漸暴露了一些弱點(diǎn)。

1.審視問題域的視角

在現(xiàn)實(shí)世界中存在的客體是問題域中的主角,所謂客體是指客觀存在的對(duì)象實(shí)體和主觀抽象的概念,他是人類觀察問題和解決問題的主要目標(biāo)。例如,對(duì)于一個(gè)學(xué)校學(xué)生管理系統(tǒng)來說,無論是簡單還是復(fù)雜,始終是圍繞學(xué)生和老師這兩個(gè)客體實(shí)施。在自然界,每個(gè)客體都具有一些屬性和行為,例如學(xué)生有學(xué)號(hào)、姓名、性別等屬性,以及上課、考試、做實(shí)驗(yàn)等行為。因此,每個(gè)個(gè)體都可以用屬性和行為來描述。

通常人類觀察問題的視角是這些客體,客體的屬性反應(yīng)客體在某一時(shí)刻的狀態(tài),客體的行為反映客體能從事的操作。這些操作附在客體之上并能用來設(shè)置、改變和獲取客體的狀態(tài)。任何問題域都有一系列的客體,因此解決問題的基本方式是讓這些客體之間相互驅(qū)動(dòng)、相互作用,最終使每個(gè)客體按照設(shè)計(jì)者的意愿改變其屬性狀態(tài)。

結(jié)構(gòu)化設(shè)計(jì)方法所采用的設(shè)計(jì)思路不是將客體作為一個(gè)整體,而是將依附于客體之上的行為抽取出來,以功能為目標(biāo)來設(shè)計(jì)構(gòu)造應(yīng)用系統(tǒng)。這種做法導(dǎo)致在進(jìn)行程序設(shè)計(jì)的時(shí)候,不得不將客體所構(gòu)成的現(xiàn)實(shí)世界映射到由功能模塊組成的解空間中,這種變換過程,不僅增加了程序設(shè)計(jì)的復(fù)雜程度,而且背離了人們觀察問題和解決問題的基本思路。另外,再仔細(xì)思考會(huì)發(fā)現(xiàn),在任何一個(gè)問題域中,客體是穩(wěn)定的,而行為是不穩(wěn)定的。例如,不管是國家圖書館,還是學(xué)校圖書館,還是國際圖書館,都會(huì)含有圖書這個(gè)客體,但管理圖書的方法可能是截然不同的。結(jié)構(gòu)化設(shè)計(jì)方法將審視問題的視角定位于不穩(wěn)定的操作之上,并將描述客體的屬性和行為分開,使得應(yīng)用程序的日后維護(hù)和擴(kuò)展相當(dāng)困難,甚至一個(gè)微小的變動(dòng),都會(huì)波及到整個(gè)系統(tǒng)。面對(duì)問題規(guī)模的日趨擴(kuò)大、環(huán)境的日趨復(fù)雜、需求變化的日趨加快,將利用計(jì)算機(jī)解決問題的基本方法統(tǒng)一到人類解決問題的習(xí)慣方法之上,徹底改變軟件設(shè)計(jì)方法與人類解決問題的常規(guī)方式扭曲的現(xiàn)象迫在眉睫,這是提出面向?qū)ο蟮氖滓颉?/p>

2.抽象級(jí)別

抽象是人類解決問題的基本法寶。良好的抽象策略可以控制問題的復(fù)雜程度,增強(qiáng)系統(tǒng)的通用性和可擴(kuò)展性。抽象主要包括過程抽象和數(shù)據(jù)抽象。結(jié)構(gòu)化設(shè)計(jì)方法應(yīng)用的是過程抽象。所謂過程抽象是將問題域中具有明確功能定義的操作抽取出來,并將其作為一個(gè)實(shí)體看待。這種抽象級(jí)別對(duì)于軟件系統(tǒng)結(jié)構(gòu)的設(shè)計(jì)顯得有些武斷,并且穩(wěn)定性差,導(dǎo)致很難準(zhǔn)確無誤地設(shè)計(jì)出系統(tǒng)的每一個(gè)操作環(huán)節(jié)。一旦某個(gè)客體屬性的表示方式發(fā)生了變化,就有可能牽扯到已有系統(tǒng)的很多部分。而數(shù)據(jù)抽象是較過程抽象更高級(jí)別的抽象方式,將描述客體的屬性和行為綁定在一起,實(shí)現(xiàn)統(tǒng)一的抽象,從而達(dá)到對(duì)現(xiàn)實(shí)世界客體的真正模擬。

3.封裝體

封裝是指將現(xiàn)實(shí)世界中存在的某個(gè)客體的屬性與行為綁定在一起,并放置在一個(gè)邏輯單元內(nèi)。該邏輯單元負(fù)責(zé)將所描述的屬性隱藏起來,外界對(duì)客體內(nèi)部屬性的所有訪問只能通過提供的用戶接口實(shí)現(xiàn)。這樣做既可以實(shí)現(xiàn)對(duì)客體屬性的保護(hù)作用,又可以提高軟件系統(tǒng)的可維護(hù)性。只要用戶接口不改變,任何封裝體內(nèi)部的改變都不會(huì)對(duì)軟件系統(tǒng)的其他部分造成影響。結(jié)構(gòu)化設(shè)計(jì)方法沒有做到客體的整體封裝,只是封裝了各個(gè)功能模塊,而每個(gè)功能模塊可以隨意地對(duì)沒有保護(hù)能力客體屬性實(shí)施操作,并且由于描述屬性的數(shù)據(jù)與行為被分割開來,所以一旦某個(gè)客體屬性的表達(dá)方式發(fā)生了變化,或某個(gè)行為效果發(fā)生了改變,就有可能對(duì)整個(gè)系統(tǒng)產(chǎn)生影響。

4.可重用性

可重用性標(biāo)識(shí)著軟件產(chǎn)品的可復(fù)用能力,是衡量一個(gè)軟件產(chǎn)品成功與否的重要標(biāo)志。當(dāng)今的軟件開發(fā)行業(yè),人們?cè)絹碓阶非箝_發(fā)更多的、更有通用性的可重用構(gòu)件,從而使軟件開發(fā)過程徹底改善,即從過去的語句級(jí)編寫發(fā)展到現(xiàn)在的構(gòu)件組裝,從而提高軟件開發(fā)效率,推動(dòng)應(yīng)用領(lǐng)域迅速擴(kuò)展。然而,結(jié)構(gòu)化程序設(shè)計(jì)方法的基本單位是模塊,每個(gè)模塊只是實(shí)現(xiàn)特定功能的過程描述,因此,它的可重用單位只能是模塊。例如,在C語言編寫程序時(shí)使用大量的標(biāo)準(zhǔn)函數(shù)。但對(duì)于今天的軟件開發(fā)來說,這樣的重用力度顯得微不足道,而且當(dāng)參與操作的某些數(shù)據(jù)類型發(fā)生變化時(shí),就不能夠再使用那些函數(shù)了。因此,渴望更大力度的可重用構(gòu)件是如今應(yīng)用領(lǐng)域?qū)浖_發(fā)提出的新需求。

上述弱點(diǎn)驅(qū)使人們尋求一種新的程序設(shè)計(jì)方法,以適應(yīng)現(xiàn)代社會(huì)對(duì)軟件開發(fā)的更高要求,面向?qū)ο笥纱水a(chǎn)生。

基本概念

對(duì)象的含義是指具體的某一個(gè)事物,即在現(xiàn)實(shí)生活中能夠看得見摸得著的事物。在面向?qū)ο蟪绦蛟O(shè)計(jì)中,對(duì)象所指的是計(jì)算機(jī)系統(tǒng)中的某一個(gè)成分。在面向?qū)ο蟪绦蛟O(shè)計(jì)中,對(duì)象包含兩個(gè)含義,其中一個(gè)是數(shù)據(jù),另外一個(gè)是動(dòng)作。對(duì)象則是數(shù)據(jù)和動(dòng)作的結(jié)合體。對(duì)象不僅能夠進(jìn)行操作,同時(shí)還能夠及時(shí)記錄下操作結(jié)果。??

方法是指對(duì)象能夠進(jìn)行的操作,方法同時(shí)還有另外一個(gè)名稱,叫做函數(shù)。方法是類中的定義函數(shù),其具體的作用就是對(duì)對(duì)象進(jìn)行描述操作。??

繼承簡單地說就是一種層次模型,這種層次模型能夠被重用。層次結(jié)構(gòu)的上層具有通用性,但是下層結(jié)構(gòu)則具有特殊性。在繼承的過程中類則可以從最頂層的部分繼承一些方法和變量。類除了可以繼承以外同時(shí)還能夠進(jìn)行修改或者添加。通過這樣的方式能夠有效提高工作效率。在這里舉一個(gè)例子,當(dāng)類X繼承了類Y后,此時(shí)的類X則是一個(gè)派生類,而類Y屬于一個(gè)基類。???繼承是從一般演繹到特殊的過程,可以減少知識(shí)表示的冗余內(nèi)容,知識(shí)庫的維護(hù)和修正都非常方便。更有利于衍生復(fù)雜的系統(tǒng)。??

類是具有相同特性(數(shù)據(jù)元素)和行為(功能)的對(duì)象的抽象。因此,對(duì)象的抽象是類,類的具體化就是對(duì)象,也可以說類的實(shí)例是對(duì)象,類實(shí)際上就是一種數(shù)據(jù)類型。類具有屬性,它是對(duì)象的狀態(tài)的抽象,用數(shù)據(jù)結(jié)構(gòu)來描述類的屬性。類具有操作,它是對(duì)象的行為的抽象,用操作名和實(shí)現(xiàn)該操作的方法來描述。???類映射的每一個(gè)對(duì)象都具有這些數(shù)據(jù)和操作方法,類的繼承具有層次性和結(jié)構(gòu)性,高層次對(duì)象封裝復(fù)雜行為,具體細(xì)節(jié)對(duì)該層次知識(shí)保持透明,可以減小問題求解的復(fù)雜度。

封裝是將數(shù)據(jù)和代碼捆綁到一起,對(duì)象的某些數(shù)據(jù)和代碼可以是私有的,不能被外界訪問,以此實(shí)現(xiàn)對(duì)數(shù)據(jù)和代碼不同級(jí)別的訪問權(quán)限。防止了程序相互依賴性而帶來的變動(dòng)影響,面向?qū)ο蟮姆庋b比傳統(tǒng)語言的封裝更為清晰、更為有力。有效實(shí)現(xiàn)了兩個(gè)目標(biāo):對(duì)數(shù)據(jù)和行為的包裝和信息隱藏。??

多態(tài)是指不同事物具有不同表現(xiàn)形式的能力。多態(tài)機(jī)制使具有不同內(nèi)部結(jié)構(gòu)的對(duì)象可以共享相同的外部接口,通過這種方式減少代碼的復(fù)雜度。一個(gè)接口,多種方式。??

動(dòng)態(tài)綁定指的是將一個(gè)過程調(diào)用與相應(yīng)代碼鏈接起來的行為。動(dòng)態(tài)綁定是指與給定的過程調(diào)用相關(guān)聯(lián)的代碼只有在運(yùn)行期才可知的一種綁定,它是多態(tài)實(shí)現(xiàn)的具體形式。??

消息傳遞:對(duì)象之間需要相互溝通,溝通的途徑就是對(duì)象之間收發(fā)信息。消息內(nèi)容包括接收消息的對(duì)象的標(biāo)識(shí),需要調(diào)用的函數(shù)的標(biāo)識(shí),以及必要的信息。消息傳遞的概念使得對(duì)現(xiàn)實(shí)世界的描述更容易。??

面向?qū)ο蟮姆椒ň褪抢贸橄?、封裝等機(jī)制,借助于對(duì)象、類、繼承、消息傳遞等概念進(jìn)行軟件系統(tǒng)構(gòu)造的軟件開發(fā)方法。

特征

⑴對(duì)象唯一性。

每個(gè)對(duì)象都有自身唯一的標(biāo)識(shí),通過這種標(biāo)識(shí),可找到相應(yīng)的對(duì)象。在對(duì)象的整個(gè)生命期中,它的標(biāo)識(shí)都不改變,不同的對(duì)象不能有相同的標(biāo)識(shí)。

⑵抽象性。

抽象性是指將具有一致的數(shù)據(jù)結(jié)構(gòu)(屬性)和行為(操作)的對(duì)象抽象成類。一個(gè)類就是這樣一種抽象,它反映了與應(yīng)用有關(guān)的重要性質(zhì),而忽略其他一些無關(guān)內(nèi)容。任何類的劃分都是主觀的,但必須與具體的應(yīng)用有關(guān)。

⑶繼承性。

繼承性是子類自動(dòng)共享父類數(shù)據(jù)結(jié)構(gòu)和方法的機(jī)制,這是類之間的一種關(guān)系。在定義和實(shí)現(xiàn)一個(gè)類的時(shí)候,可以在一個(gè)已經(jīng)存在的類的基礎(chǔ)之上來進(jìn)行,把這個(gè)已經(jīng)存在的類所定義的內(nèi)容作為自己的內(nèi)容,并加入若干新的內(nèi)容。

繼承性是面向?qū)ο蟪绦蛟O(shè)計(jì)語言不同于其它語言的最重要的特點(diǎn),是其他語言所沒有的。

在類層次中,子類只繼承一個(gè)父類的數(shù)據(jù)結(jié)構(gòu)和方法,則稱為單重繼承。

在類層次中,子類繼承了多個(gè)父類的數(shù)據(jù)結(jié)構(gòu)和方法,則稱為多重繼承。

多重繼承,JAVA、VB、NET、Objective-C均僅支持單繼承,注意在C++多重繼承時(shí),需小心二義性。

在軟件開發(fā)中,類的繼承性使所建立的軟件具有開放性、可擴(kuò)充性,這是信息組織與分類的行之有效的方法,它簡化了對(duì)象、類的創(chuàng)建工作量,增加了代碼的可重用性。

采用繼承性,提供了類的規(guī)范的等級(jí)結(jié)構(gòu)。通過類的繼承關(guān)系,使公共的特性能夠共享,提高了軟件的重用性。

⑷多態(tài)性(多形性)

多態(tài)性是指相同的操作或函數(shù)、過程可作用于多種類型的對(duì)象上并獲得不同的結(jié)果。不同的對(duì)象,收到同一消息可以產(chǎn)生不同的結(jié)果,這種現(xiàn)象稱為多態(tài)性。

多態(tài)性允許每個(gè)對(duì)象以適合自身的方式去響應(yīng)共同的消息。

多態(tài)性增強(qiáng)了軟件的靈活性和重用性。

開發(fā)方法

OOA方法

面向?qū)ο蟮姆治龇椒ǎ∣OA),是在一個(gè)系統(tǒng)的開發(fā)過程中進(jìn)行了系統(tǒng)業(yè)務(wù)調(diào)查以后,按照面向?qū)ο蟮乃枷雭矸治鰡栴}。OOA與結(jié)構(gòu)化分析有較大的區(qū)別。OOA所強(qiáng)調(diào)的是在系統(tǒng)調(diào)查資料的基礎(chǔ)上,針對(duì)OO方法所需要的素材進(jìn)行的歸類分析和整理,而不是對(duì)管理業(yè)務(wù)現(xiàn)狀和方法的分析。

(一)處理復(fù)雜問題的原則

抽象(abstraction)是指為了某一分析目的而集中精力研究對(duì)象的某一性質(zhì),它可以忽略其它與此目的無關(guān)的部分。在使用這一概念時(shí),我們承認(rèn)客觀世界的復(fù)雜性,也知道事物包括有多個(gè)細(xì)節(jié),但此時(shí)并不打算去完整地考慮它。抽象是我們科學(xué)地研究和處理復(fù)雜問題的重要方法。抽象機(jī)制被用在數(shù)據(jù)分析方面,稱之為數(shù)據(jù)抽象。數(shù)據(jù)抽象是OOA的核心。數(shù)據(jù)抽象把一組數(shù)據(jù)對(duì)象以及作用其上的操作組成一個(gè)程序?qū)嶓w。使得外部只知道它是如何做和如何表示的。在應(yīng)用數(shù)據(jù)抽象原理時(shí),系統(tǒng)分析人員必須確定對(duì)象的屬性以及處理這些屬性的方法,并借助于方法獲得屬性。在OOA中屬性和方法被認(rèn)為是不可分割的整體。抽象機(jī)制有時(shí)也被用在對(duì)過程的分解方面,被稱之為過程抽象。恰當(dāng)?shù)倪^程抽象可以對(duì)復(fù)雜過程的分解和確定以及描述對(duì)象發(fā)揮積極的作用。

封裝 - encapsulation即信息隱蔽。它是指在確定系統(tǒng)的某一部分內(nèi)容時(shí),應(yīng)考慮到其它部分的信息及聯(lián)系都在這一部分的內(nèi)部進(jìn)行,外部各部分之間的信息聯(lián)系應(yīng)盡可能的少。

繼承(inheritance)是指能直接獲得已有的性質(zhì)和特征而不必重復(fù)定義它們。OOA可以一次性地指定對(duì)象的公共屬性和方法,然后再特化和擴(kuò)展這些屬性及方法為特殊情況,這樣可大大地減輕在系統(tǒng)實(shí)現(xiàn)過程中的重復(fù)勞動(dòng)。在共有屬性的基礎(chǔ)之上,繼承者也可以定義自己獨(dú)有的特性。

相關(guān)(association)是指把某一時(shí)刻或相同環(huán)境下發(fā)生的事物聯(lián)系在一起。

消息通信(communicationwithmessage)是指在對(duì)象之間互相傳遞信息的通信方式。

組織方法,在分析和認(rèn)識(shí)世界時(shí),可綜合采用如下三種組織方法(methodOforganization):

1、特定對(duì)象與其屬性之間的區(qū)別。

2、整體對(duì)象與相應(yīng)組成部分對(duì)象之間的區(qū)別。

3、不同對(duì)象類的構(gòu)成及其區(qū)別等。

比例(scale)是一種運(yùn)用整體與部分原則,輔助處理復(fù)雜問題的方法。

行為范疇 - categoriesOfbehavior是針對(duì)被分析對(duì)象而言的,它們主要包括:1?;谥苯釉虻男袨椤?。時(shí)變性行為。3。功能查詢性行為。

(二)OOA方法的基本步驟

在用OOA具體地分析一個(gè)事物時(shí),大致上遵循如下五個(gè)基本步驟:

第一步,確定對(duì)象和類。這里所說的對(duì)象是對(duì)數(shù)據(jù)及其處理方式的抽象,它反映了系統(tǒng)保存和處理現(xiàn)實(shí)世界中某些事物的信息的能力。類是多個(gè)對(duì)象的共同屬性和方法集合的描述,它包括如何在一個(gè)類中建立一個(gè)新對(duì)象的描述。

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

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

第四步,確定屬性(attribute)。屬性就是數(shù)據(jù)元素,可用來描述對(duì)象或分類結(jié)構(gòu)的實(shí)例,可在圖中給出,并在對(duì)象的存儲(chǔ)中指定。

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

OOD方法

面向?qū)ο蟮脑O(shè)計(jì)方法(OOD)是OO方法中一個(gè)中間過渡環(huán)節(jié)。其主要作用是對(duì)OOA分析的結(jié)果作進(jìn)一步的規(guī)范化整理,以便能夠被OOP直接接受。在OOD的設(shè)計(jì)過程中,要展開的主要有如下幾項(xiàng)工作。

(一)對(duì)象定義規(guī)格的求精過程

對(duì)于OOA所抽象出來的對(duì)象-&-類以及匯集的分析文檔,OOD需要有一個(gè)根據(jù)設(shè)計(jì)要求整理和求精的過程,使之更能符合OOP的需要。這個(gè)整理和求精過程主要有兩個(gè)方面:一是要根據(jù)面向?qū)ο蟮母拍钅P驼矸治鏊_定的對(duì)象結(jié)構(gòu)、屬性、方法等內(nèi)容,改正錯(cuò)誤的內(nèi)容,刪去不必要和重復(fù)的內(nèi)容等。二是進(jìn)行分類整理,以便于下一步數(shù)據(jù)庫設(shè)計(jì)和程序處理模塊設(shè)計(jì)的需要。整理的方法主要是進(jìn)行歸類,對(duì)類一&一對(duì)象、屬性、方法和結(jié)構(gòu)、主題進(jìn)行歸類。

(二)數(shù)據(jù)模型和數(shù)據(jù)庫設(shè)計(jì)

數(shù)據(jù)模型的設(shè)計(jì)需要確定類-&-對(duì)象屬性的內(nèi)容、消息連接的方式、系統(tǒng)訪問、數(shù)據(jù)模型的方法等。最后每個(gè)對(duì)象實(shí)例的數(shù)據(jù)都必須落實(shí)到面向?qū)ο蟮膸旖Y(jié)構(gòu)模型中。

(三)優(yōu)化

OOD的優(yōu)化設(shè)計(jì)過程是從另一個(gè)角度對(duì)分析結(jié)果和處理業(yè)務(wù)過程的整理歸納,優(yōu)化包括對(duì)象和結(jié)構(gòu)的優(yōu)化、抽象、集成。

對(duì)象和結(jié)構(gòu)的模塊化表示OOD提供了一種范式,這種范式支持對(duì)類和結(jié)構(gòu)的模塊化。這種模塊符合一般模塊化所要求的所有特點(diǎn),如信息隱蔽性好,內(nèi)部聚合度強(qiáng)和模塊之間耦合度弱等。

集成化使得單個(gè)構(gòu)件有機(jī)地結(jié)合在一起,相互支持。

Booch方法

Booch最先描述了面向?qū)ο蟮能浖_發(fā)方法的基礎(chǔ)問題,指出面向?qū)ο箝_發(fā)是一種根本不同于傳統(tǒng)的功能分解的設(shè)計(jì)方法。面向?qū)ο蟮能浖纸飧咏藢?duì)客觀事務(wù)的理解,而功能分解只通過問題空間的轉(zhuǎn)換來獲得。

Coad方法

Coad方法是1989年Coad和Yourdon提出的面向?qū)ο箝_發(fā)方法。該方法的主要優(yōu)點(diǎn)是通過多年來大系統(tǒng)開發(fā)的經(jīng)驗(yàn)與面向?qū)ο蟾拍畹挠袡C(jī)結(jié)合,在對(duì)象、結(jié)構(gòu)、屬性和操作的認(rèn)定方面,提出了一套系統(tǒng)的原則。該方法完成了從需求角度進(jìn)一步進(jìn)行類和類層次結(jié)構(gòu)的認(rèn)定。盡管Coad方法沒有引入類和類層次結(jié)構(gòu)的術(shù)語,但事實(shí)上已經(jīng)在分類結(jié)構(gòu)、屬性、操作、消息關(guān)聯(lián)等概念中體現(xiàn)了類和類層次結(jié)構(gòu)的特征。

OMT方法

OMT方法是1991年由JamesRumbaugh等5人提出來的,其經(jīng)典著作為“面向?qū)ο蟮慕Ec設(shè)計(jì)”。

該方法是一種新興的面向?qū)ο蟮拈_發(fā)方法,開發(fā)工作的基礎(chǔ)是對(duì)真實(shí)世界的對(duì)象建模,然后圍繞這些對(duì)象使用分析模型來進(jìn)行獨(dú)立于語言的設(shè)計(jì),面向?qū)ο蟮慕:驮O(shè)計(jì)促進(jìn)了對(duì)需求的理解,有利于開發(fā)得更清晰、更容易維護(hù)的軟件系統(tǒng)。該方法為大多數(shù)應(yīng)用領(lǐng)域的軟件開發(fā)提供了一種實(shí)際的、高效的保證,努力尋求一種問題求解的實(shí)際方法。

UML語言

軟件工程領(lǐng)域在1995年~1997年取得了前所未有的進(jìn)展,其成果超過軟件工程領(lǐng)域過去15年的成就總和,其中最重要的成果之一就是統(tǒng)一建模語言(UML的出現(xiàn)。UML將是面向?qū)ο蠹夹g(shù)領(lǐng)域內(nèi)占主導(dǎo)地位的標(biāo)準(zhǔn)建模語言。

UML不僅統(tǒng)一了Booch方法、OMT方法、OOSE方法的表示方法,而且對(duì)其作了進(jìn)一步的發(fā)展,最終統(tǒng)一為大眾接受的標(biāo)準(zhǔn)建模語言。UML是一種定義良好、易于表達(dá)、功能強(qiáng)大且普遍適用的建模語言。它融入了軟件工程領(lǐng)域的新思想、新方法和新技術(shù)。它的作用域不限于支持面向?qū)ο蟮姆治雠c設(shè)計(jì),還支持從需求分析開始的軟件開發(fā)全過程。

模型

對(duì)象模型

對(duì)象模型表示了靜態(tài)的、結(jié)構(gòu)化的系統(tǒng)數(shù)據(jù)性質(zhì),描述了系統(tǒng)的靜態(tài)結(jié)構(gòu),它是從客觀世界實(shí)體的對(duì)象關(guān)系角度來描述,表現(xiàn)了對(duì)象的相互關(guān)系。該模型主要關(guān)心系統(tǒng)中對(duì)象的結(jié)構(gòu)、屬性和操作,它是分析階段三個(gè)模型的核心,是其他兩個(gè)模型的框架。

⒈對(duì)象和類

⑴對(duì)象。

對(duì)象建模的目的就是描述對(duì)象。

⑵類。

通過將對(duì)象抽象成類,我們可以使問題抽象化,抽象增強(qiáng)了模型的歸納能力。

⑶屬性。

屬性指的是類中對(duì)象所具有的性質(zhì)(數(shù)據(jù)值)。

⑷操作和方法。

操作是類中對(duì)象所使用的一種功能或變換。類中的各對(duì)象可以共享操作,每個(gè)操作都有一個(gè)目標(biāo)對(duì)象作為其隱含參數(shù)。

方法是類的操作的實(shí)現(xiàn)步驟。

⒉關(guān)聯(lián)和鏈

關(guān)聯(lián)是建立類之間關(guān)系的一種手段,而鏈則是建立對(duì)象之間關(guān)系的一種手段。

⑴關(guān)聯(lián)和鏈的含義。

鏈表示對(duì)象間的物理與概念聯(lián)結(jié),關(guān)聯(lián)表示類之間的一種關(guān)系,鏈?zhǔn)顷P(guān)聯(lián)的實(shí)例,關(guān)聯(lián)是鏈的抽象。

⑵角色。

角色說明類在關(guān)聯(lián)中的作用,它位于關(guān)聯(lián)的端點(diǎn)。

⑶受限關(guān)聯(lián)。

受限關(guān)聯(lián)由兩個(gè)類及一個(gè)限定詞組成,限定詞是一種特定的屬性,用來有效的減少關(guān)聯(lián)的重?cái)?shù),限定詞在關(guān)聯(lián)的終端對(duì)象集中說明。

限定提高了語義的精確性,增強(qiáng)了查詢能力,在現(xiàn)實(shí)世界中,常常出現(xiàn)限定詞。

⑷關(guān)聯(lián)的多重性。

關(guān)聯(lián)的多重性是指類中有多少個(gè)對(duì)象與關(guān)聯(lián)的類的一個(gè)對(duì)象相關(guān)。重?cái)?shù)常描述為“一”或“多”。

⒊類的層次結(jié)構(gòu)

⑴聚集關(guān)系。

聚集是一種“整體-部分”關(guān)系。在這種關(guān)系中,有整體類和部分類之分。聚集最重要的性質(zhì)是傳遞性,也具有逆對(duì)稱性。

聚集可以有不同層次,可以把不同分類聚集起來得到一顆簡單的聚集樹,聚集樹是一種簡單表示,比畫很多線來將部分類聯(lián)系起來簡單得多,對(duì)象模型應(yīng)該容易地反映各級(jí)層次。

⑵一般化關(guān)系。

一般化關(guān)系是在保留對(duì)象差異的同時(shí)共享對(duì)象相似性的一種高度抽象方式。它是“一般—具體”的關(guān)系。一般化類稱為你類,具體類又能稱為子類,各子類繼承了父類的性質(zhì),而各子類的一些共同性質(zhì)和操作又歸納到你類中。因此,一般化關(guān)系和繼承是同時(shí)存在的。一般化關(guān)系的符號(hào)表示是在類關(guān)聯(lián)的連線上加一個(gè)小三角形。

⒋對(duì)象模型

⑴模板。模板是類、關(guān)聯(lián)、一般化結(jié)構(gòu)的邏輯組成。

⑵對(duì)象模型。

對(duì)象模型是由一個(gè)或若干個(gè)模板組成。模板將模型分為若干個(gè)便于管理的子塊,在整個(gè)對(duì)象模型和類及關(guān)聯(lián)的構(gòu)造塊之間,模板提供了一種集成的中間單元,模板中的類名及關(guān)聯(lián)名是唯一的。

動(dòng)態(tài)模型

動(dòng)態(tài)模型是與時(shí)間和變化有關(guān)的系統(tǒng)性質(zhì)。該模型描述了系統(tǒng)的控制結(jié)構(gòu),它表示了瞬間的、行為化的系統(tǒng)控制

性質(zhì),它關(guān)心的是系統(tǒng)的控制,操作的執(zhí)行順序,它表示從對(duì)象的事件和狀態(tài)的角度出發(fā),表現(xiàn)了對(duì)象的相互行為。

該模型描述的系統(tǒng)屬性是觸發(fā)事件、事件序列、狀態(tài)、事件與狀態(tài)的組織。使用狀態(tài)圖作為描述工具。它涉及到事件、狀態(tài)、操作等重要概念。

⒈事件

事件是指定時(shí)刻發(fā)生的某件事。

⒉狀態(tài)

狀態(tài)是對(duì)象屬性值的抽象。對(duì)象的屬性值按照影響對(duì)象顯著行為的性質(zhì)將其歸并到一個(gè)狀態(tài)中去。狀態(tài)指明了對(duì)象對(duì)輸入事件的響應(yīng)。

⒊狀態(tài)圖

狀態(tài)圖是一個(gè)標(biāo)準(zhǔn)的計(jì)算機(jī)概念,他是有限自動(dòng)機(jī)的圖形表示,這里把狀態(tài)圖作為建立動(dòng)態(tài)模型的圖形工具。

狀態(tài)圖反映了狀態(tài)與事件的關(guān)系。當(dāng)接收一事件時(shí),下一狀態(tài)就取決于當(dāng)前狀態(tài)和所接收的該事件,由該事件引起的狀態(tài)變化稱為轉(zhuǎn)換。

狀態(tài)圖是一種圖,用結(jié)點(diǎn)表示狀態(tài),結(jié)點(diǎn)用圓圈表示;圓圈內(nèi)有狀態(tài)名,用箭頭連線表示狀態(tài)的轉(zhuǎn)換,上面標(biāo)記事件名,箭頭方向表示轉(zhuǎn)換的方向。

功能模型

功能模型描述了系統(tǒng)的所有計(jì)算。功能模型指出發(fā)生了什么,動(dòng)態(tài)模型確定什么時(shí)候發(fā)生,而對(duì)象模型確定發(fā)生的客體。功能模型表明一個(gè)計(jì)算如何從輸入值得到輸出值,它不考慮計(jì)算的次序。功能模型由多張數(shù)據(jù)流圖組成。數(shù)據(jù)流圖用來表示從源對(duì)象到目標(biāo)對(duì)象的數(shù)據(jù)值的流向,它不包含控制信息,控制信息在動(dòng)態(tài)模型中表示,同時(shí)數(shù)據(jù)流圖也不表示對(duì)象中值的組織,值的組織在對(duì)象模型中表示。

數(shù)據(jù)流圖中包含有處理、數(shù)據(jù)流、動(dòng)作對(duì)象和數(shù)據(jù)存儲(chǔ)對(duì)象。

⒈處理

數(shù)據(jù)流圖中的處理用來改變數(shù)據(jù)值。最低層處理是純粹的函數(shù),一張完整的數(shù)據(jù)流圖是一個(gè)高層處理。

⒉數(shù)據(jù)流

數(shù)據(jù)流圖中的數(shù)據(jù)流將對(duì)象的輸出與處理、處理與對(duì)象的輸入、處理與處理聯(lián)系起來。在一個(gè)計(jì)算機(jī)中,用數(shù)據(jù)流來表示一中間數(shù)據(jù)值,數(shù)據(jù)流不能改變數(shù)據(jù)值。

⒊動(dòng)作對(duì)象

動(dòng)作對(duì)象是一種主動(dòng)對(duì)象,它通過生成或者使用數(shù)據(jù)值來驅(qū)動(dòng)數(shù)據(jù)流圖。

⒋數(shù)據(jù)存儲(chǔ)對(duì)象

數(shù)據(jù)流圖中的數(shù)據(jù)存儲(chǔ)是被動(dòng)對(duì)象,它用來存儲(chǔ)數(shù)據(jù)。它與動(dòng)作對(duì)象不一樣,數(shù)據(jù)存儲(chǔ)本身不產(chǎn)生任何操作,它只響應(yīng)存儲(chǔ)和訪問的要求。

實(shí)例分析

面向?qū)ο蠓治龅哪康氖菍?duì)客觀世界的系統(tǒng)進(jìn)行建模。本節(jié)以上面介紹的模型概念為基礎(chǔ),結(jié)合“銀行網(wǎng)絡(luò)系統(tǒng)”的具體實(shí)例來構(gòu)造客觀世界問題的準(zhǔn)確、嚴(yán)密的分析模型。

分析模型有三種用途:用來明確問題需求;為用戶和開發(fā)人員提供明確需求;為用戶和開發(fā)人員提供一個(gè)協(xié)商的基礎(chǔ),作為后繼的設(shè)計(jì)和實(shí)現(xiàn)的框架。

(一)面向?qū)ο蟮姆治?/p>

系統(tǒng)分析的第一步是:陳述需求。分析者必須同用戶一塊工作來提煉需求,因?yàn)檫@樣才表示了用戶的真實(shí)意圖,其中涉及對(duì)需求的分析及查找丟失的信息。下面以“銀行網(wǎng)絡(luò)系統(tǒng)”為例,用面向?qū)ο蠓椒ㄟM(jìn)行分析。

銀行網(wǎng)絡(luò)系統(tǒng)問題陳述:設(shè)計(jì)支持銀行網(wǎng)絡(luò)的軟件,銀行網(wǎng)絡(luò)包括人工出納站和分行共享的自動(dòng)出納機(jī)。每個(gè)分理處用分理處計(jì)算機(jī)來保存各自的帳戶,處理各自的事務(wù);各自分理處的出納站與分理處計(jì)算機(jī)通信,出納站錄入帳戶和事務(wù)數(shù)據(jù);自動(dòng)出納機(jī)與分行計(jì)算機(jī)通信,分行計(jì)算機(jī)與撥款分理處結(jié)帳,自動(dòng)出納機(jī)與用戶接口接受現(xiàn)金卡,與分行計(jì)算機(jī)通信完成事務(wù),發(fā)放現(xiàn)金,打印收據(jù);系統(tǒng)需要記錄保管和安全措施;系統(tǒng)必須正確處理同一帳戶的并發(fā)訪問;每個(gè)分處理為自己的計(jì)算機(jī)準(zhǔn)備軟件,銀行網(wǎng)絡(luò)費(fèi)用根據(jù)顧客和現(xiàn)金卡的數(shù)目分?jǐn)偨o各分理處。

(二)建立對(duì)象模型

首先標(biāo)識(shí)和關(guān)聯(lián),因?yàn)樗鼈冇绊懥苏w結(jié)構(gòu)和解決問題的方法,其次是增加屬性,進(jìn)一步描述類和關(guān)聯(lián)的基本網(wǎng)絡(luò),使用繼承合并和組織類,最后操作增加到類中去作為構(gòu)造動(dòng)態(tài)模型和功能模型的副產(chǎn)品。

⒈確定類

構(gòu)造對(duì)象模型的第一步是標(biāo)出來自問題域的相關(guān)的對(duì)象類,對(duì)象包括物理實(shí)體和概念。所有類在應(yīng)用中都必須有意義,在問題陳述中,并非所有類都是明顯給出的。有些是隱含在問題域或一般知識(shí)中的。

查找問題陳述中的所有名詞,產(chǎn)生如下的暫定類。

軟件銀行網(wǎng)絡(luò)出納員自動(dòng)出納機(jī)分行

分處理分處理計(jì)算機(jī)帳戶事務(wù)出納站

事務(wù)數(shù)據(jù)分行計(jì)算機(jī)現(xiàn)金卡用戶現(xiàn)金

收據(jù)系統(tǒng)顧客費(fèi)用帳戶數(shù)據(jù)

訪問安全措施記錄保管

根據(jù)下列標(biāo)準(zhǔn),去掉不必要的類和不正確的類。

⑴冗余類:若兩個(gè)類表述了同一個(gè)信息,保留最富有描述能力的類。如"用戶"和"顧客"就是重復(fù)的描述,因?yàn)?quot;顧客"最富有描述性,因此保留它。

⑵不相干的類:除掉與問題沒有關(guān)系或根本無關(guān)的類。例如,攤派費(fèi)用超出了銀行網(wǎng)絡(luò)的范圍。

⑶模糊類:類必須是確定的,有些暫定類邊界定義模糊或范圍太廣,如"記錄保管"就模糊類,它是"事務(wù)"中的一部分。

⑷屬性:某些名詞描述的是其他對(duì)象的屬性,則從暫定類中刪除。如果某一性質(zhì)的獨(dú)立性很重要,就應(yīng)該把他歸屬到類,而不把它作為屬性。

⑸操作:如果問題陳述中的名詞有動(dòng)作含義,則描述的操作就不是類。但是具有自身性質(zhì)而且需要獨(dú)立存在的操作應(yīng)該描述成類。如我們只構(gòu)造電話模型,"撥號(hào)"就是動(dòng)態(tài)模型的一部分而不是類,但在電話撥號(hào)系統(tǒng)中,"撥號(hào)"是一個(gè)重要的類,它日期、時(shí)間、受話地點(diǎn)等屬性。

在銀行網(wǎng)絡(luò)系統(tǒng)中,模糊類是"系統(tǒng)"、"安全措施"、"記錄保管"、"銀行網(wǎng)絡(luò)"等。屬于屬性的有:"帳戶數(shù)據(jù)"、"收據(jù)"、"現(xiàn)金"、"事務(wù)數(shù)據(jù)"。屬于實(shí)現(xiàn)的如:"訪問"、"軟件"等。這些均應(yīng)除去。

⒉準(zhǔn)備數(shù)據(jù)字典

為所有建模實(shí)體準(zhǔn)備一個(gè)數(shù)據(jù)字典。準(zhǔn)確描述各個(gè)類的精確含義,描述當(dāng)前問題中的類的范圍,包括對(duì)類的成員、用法方面的假設(shè)或限制。

⒊確定關(guān)聯(lián)

兩個(gè)或多個(gè)類之間的相互依賴就是關(guān)聯(lián)。一種依賴表示一種關(guān)聯(lián),可用各種方式來實(shí)現(xiàn)關(guān)聯(lián),但在分析模型中應(yīng)刪除實(shí)現(xiàn)的考慮,以便設(shè)計(jì)時(shí)更為靈活。關(guān)聯(lián)常用描述性動(dòng)詞或動(dòng)詞詞組來表示,其中有物理位置的表示、傳導(dǎo)的動(dòng)作、通信、所有者關(guān)系、條件的滿足等。從問題陳述中抽取所有可能的關(guān)聯(lián)表述,把它們記下來,但不要過早去細(xì)化這些表述。

下面是銀行網(wǎng)絡(luò)系統(tǒng)中所有可能的關(guān)聯(lián),大多數(shù)是直接抽取問題中的動(dòng)詞詞組而得到的。在陳述中,有些動(dòng)詞詞組表述的關(guān)聯(lián)是不明顯的。最后,還有一些關(guān)聯(lián)與客觀世界或人的假設(shè)有關(guān),必須同用戶一起核實(shí)這種關(guān)聯(lián),因?yàn)檫@種關(guān)聯(lián)在問題陳述中找不到。

銀行網(wǎng)絡(luò)問題陳述中的關(guān)聯(lián):

·銀行網(wǎng)絡(luò)包括出納站和自動(dòng)出納機(jī);

·分行共享自動(dòng)出納機(jī);

·分理處提供分理處計(jì)算機(jī);

·分理處計(jì)算機(jī)保存帳戶;

·分理處計(jì)算機(jī)處理帳戶支付事務(wù);

·分理處擁有出納站;

·出納站與分理處計(jì)算機(jī)通信;

·出納員為帳戶錄入事務(wù);

·自動(dòng)出納機(jī)接受現(xiàn)金卡;

·自動(dòng)出納機(jī)與用戶接口;

·自動(dòng)出納機(jī)發(fā)放現(xiàn)金;

·自動(dòng)出納機(jī)打印收據(jù);

·系統(tǒng)處理并發(fā)訪問;

·分理處提供軟件;

·費(fèi)用分?jǐn)偨o分理處。

隱含的動(dòng)詞詞組:

·分行由分理處組成;

·分理處擁有帳戶;

·分行擁有分行計(jì)算機(jī);

·系統(tǒng)提供記錄保管;

·系統(tǒng)提供安全;

·顧客有現(xiàn)金卡。

基于問題域知識(shí)的關(guān)聯(lián):

·分理處雇傭出納員;

·現(xiàn)金卡訪問帳戶。

使用下列標(biāo)準(zhǔn)去掉不必要和不正確的關(guān)聯(lián):

⑴若某個(gè)類已被刪除,那么與它有關(guān)的關(guān)聯(lián)也必須刪除或者用其它類來重新表述。在例中,我們刪除了"銀行網(wǎng)絡(luò)",相關(guān)的關(guān)聯(lián)也要?jiǎng)h除。

⑵不相干的關(guān)聯(lián)或?qū)崿F(xiàn)階段的關(guān)聯(lián):刪除所有問題域之外的關(guān)聯(lián)或涉及實(shí)現(xiàn)結(jié)構(gòu)中的關(guān)聯(lián)。如"系統(tǒng)處理并發(fā)訪問"就是一種實(shí)現(xiàn)的概念。

⑶動(dòng)作:關(guān)聯(lián)應(yīng)該描述應(yīng)用域的結(jié)構(gòu)性質(zhì)而不是瞬時(shí)事件,因此應(yīng)刪除"自動(dòng)出納機(jī)接受現(xiàn)金卡","自動(dòng)出納機(jī)與用戶接口"等。

⑷派生關(guān)聯(lián):省略那些可以用其他關(guān)聯(lián)來定義的關(guān)聯(lián)。因?yàn)檫@種關(guān)聯(lián)是冗余的。

⒋確定屬性

屬性是個(gè)體對(duì)象的性質(zhì),屬性通常用修飾性的名詞詞組來表示.形容詞常常表示具體的可枚舉的屬性值,屬性不可能在問題陳述中完全表述出來,必須借助于應(yīng)用域的知識(shí)及對(duì)客觀世界的知識(shí)才可以找到它們。只考慮與具體應(yīng)用直接相關(guān)的屬性,不要考慮那些超出問題范圍的屬性。首先找出重要屬性,避免那些只用于實(shí)現(xiàn)的屬性,要為各個(gè)屬性取有意義的名字。按下列標(biāo)準(zhǔn)刪除不必要的和不正確的屬性:

⑴對(duì)象:若實(shí)體的獨(dú)立存在比它的值重要,那么這個(gè)實(shí)體不是屬性而是對(duì)象。如在郵政目錄中,"城市"是一個(gè)屬性,然而在人口普查中,"城市"則被看作是對(duì)象。在具體應(yīng)用中,具有自身性質(zhì)的實(shí)體一定是對(duì)象。

⑵定詞:若屬性值取決于某種具體上下文,則可考慮把該屬性重新表述為一個(gè)限定詞。

⑶名稱:名稱常常作為限定詞而不是對(duì)象的屬性,當(dāng)名稱不依賴于上下文關(guān)系時(shí),名稱即為一個(gè)對(duì)象屬性,尤其是它不惟一時(shí)。

⑷標(biāo)識(shí)符:在考慮對(duì)象模糊性時(shí),引入對(duì)象標(biāo)識(shí)符表示,在對(duì)象模型中不列出這些對(duì)象標(biāo)識(shí)符,它是隱含在對(duì)象模型中,只列出存在于應(yīng)用域的屬性。

⑸內(nèi)部值:若屬性描述了對(duì)外不透明的對(duì)象的內(nèi)部狀態(tài),則應(yīng)從對(duì)象模型中刪除該屬性。

⑹細(xì)化:忽略那些不可能對(duì)大多數(shù)操作有影響的屬性。

⒌使用繼承來細(xì)化類

使用繼承來共享公共機(jī)構(gòu),以次來組織類,可以用兩種方式來進(jìn)行。

⑴自底向上通過把現(xiàn)有類的共同性質(zhì)一般化為父類,尋找具有相似的屬性,關(guān)系或操作的類來發(fā)現(xiàn)繼承。例如"遠(yuǎn)程事務(wù)"和"出納事務(wù)"是類似的,可以一般化為"事務(wù)"。有些一般化結(jié)構(gòu)常常是基于客觀世界邊界的現(xiàn)有分類,只要可能,盡量使用現(xiàn)有概念。對(duì)稱性常有助于發(fā)現(xiàn)某些丟失的類。

⑵自頂向下將現(xiàn)有的類細(xì)化為更具體的子類。具體化常??梢詮膽?yīng)用域中明顯看出來。應(yīng)用域中各枚舉字情況是最常見的具體化的來源。例如:菜單,可以有固定菜單,頂部菜單,彈出菜單,下拉菜單等,這就可以把菜單類具體細(xì)化為各種具體菜單的子類。當(dāng)同一關(guān)聯(lián)名出現(xiàn)多次且意義也相同時(shí),應(yīng)盡量具體化為相關(guān)聯(lián)的類,例如"事務(wù)"從"出納站"和"自動(dòng)出納機(jī)"進(jìn)入,則"錄入站"就是"出納站"和"自動(dòng)出納站"的一般化。在類層次中,可以為具體的類分配屬性和關(guān)聯(lián)。各屬性和都應(yīng)分配給最一般的適合的類,有時(shí)也加上一些修正。

應(yīng)用域中各枚舉情況是最常見的具體化的來源。

⒍完善對(duì)象模型

對(duì)象建模不可能一次就能保證模型是完全正確的,軟件開發(fā)的整個(gè)過程就是一個(gè)不斷完善的過程。模型的不同組成部分多半是在不同的階段完成的,如果發(fā)現(xiàn)模型的缺陷,就必須返回到前期階段去修改,有些細(xì)化工作是在動(dòng)態(tài)模型和功能模型完成之后才開始進(jìn)行的。

⑴幾種可能丟失對(duì)象的情況及解決辦法:

·同一類中存在毫無關(guān)系的屬性和操作,則分解這個(gè)類,使各部分相互關(guān)聯(lián);

·一般化體系不清楚,則可能分離扮演兩種角色的類

·存在無目標(biāo)類的操作,則找出并加上失去目標(biāo)的類;

·存在名稱及目的相同的冗余關(guān)聯(lián),則通過一般化創(chuàng)建丟失的父類,把關(guān)聯(lián)組織在一起。

⑵查找多余的類。

類中缺少屬性,操作和關(guān)聯(lián),則可刪除這個(gè)類。

⑶查找丟失的關(guān)聯(lián)。

丟失了操作的訪問路徑,則加入新的關(guān)聯(lián)以回答查詢。

⑷網(wǎng)絡(luò)系統(tǒng)的具體情況作如下的修改:

①現(xiàn)金卡有多個(gè)獨(dú)立的特性。把它分解為兩個(gè)對(duì)象:卡片權(quán)限和現(xiàn)金卡。

a.卡片權(quán)限:它是銀行用來鑒別用戶訪問權(quán)限的卡片,表示一個(gè)或多個(gè)用戶帳戶的訪問權(quán)限;各個(gè)卡片權(quán)限對(duì)象中可能具有好幾個(gè)現(xiàn)金卡,每張都帶有安全碼,卡片碼,它們附在現(xiàn)金卡上,表現(xiàn)銀行的卡片權(quán)限。

b.現(xiàn)金卡:它是自動(dòng)出納機(jī)得到表示碼的數(shù)據(jù)卡片,它也是銀行代碼和現(xiàn)金卡代碼的數(shù)據(jù)載體。

②"事務(wù)"不能體現(xiàn)對(duì)帳戶之間的傳輸描述的一般性,因它只涉及一個(gè)帳戶,一般來說,在每個(gè)帳戶中,一個(gè)"事務(wù)"包括一個(gè)或多個(gè)"更新",一個(gè)"更新"是對(duì)帳戶的一個(gè)動(dòng)作,它們是取款,存款,查詢之一。一個(gè)"更新"中所有"更新"應(yīng)該是一個(gè)原子操作。

③"分理處"和"分離處理機(jī)"之間,"分行"和"分行處理機(jī)"之間的區(qū)別似乎并不影響分析,計(jì)算機(jī)的通信處理實(shí)際上是實(shí)現(xiàn)的概念,將"分理處計(jì)算機(jī)"并入到"分理處",將"分行計(jì)算機(jī)"并入到"分行"。

(三)建立動(dòng)態(tài)模型

⒈準(zhǔn)備腳本

動(dòng)態(tài)分析從尋找事件開始,然后確定各對(duì)象的可能事件順序。在分析階段不考慮算法的執(zhí)行,算法是實(shí)現(xiàn)模型的一部分。

⒉確定事件

確定所有外部事件。事件包括所有來自或發(fā)往用戶的信息、外部設(shè)備的信號(hào)、輸入、轉(zhuǎn)換和動(dòng)作,可以發(fā)現(xiàn)正常事件,但不能遺漏條件和異常事件。

⒊準(zhǔn)備事件跟蹤表

把腳本表示成一個(gè)事件跟蹤表,即不同對(duì)象之間的事件排序表,對(duì)象為表中的列,給每個(gè)對(duì)象分配一個(gè)獨(dú)立的列。

⒋構(gòu)造狀態(tài)圖

對(duì)各對(duì)象類建立狀態(tài)圖,反映對(duì)象接收和發(fā)送的事件,每個(gè)事件跟蹤都對(duì)應(yīng)于狀態(tài)圖中一條路徑。

(四)建立功能建模

功能模型用來說明值是如何計(jì)算的,表明值之間的依賴關(guān)系及相關(guān)的功能,數(shù)據(jù)流圖有助于表示功能依賴關(guān)系,其中的處理應(yīng)于狀態(tài)圖的活動(dòng)和動(dòng)作,其中的數(shù)據(jù)流對(duì)應(yīng)于對(duì)象圖中的對(duì)象或?qū)傩浴?/p>

⒈確定輸入值、輸出值

先列出輸入、輸出值,輸入、輸出值是系統(tǒng)與外界之間的事件的參數(shù)。

⒉建立數(shù)據(jù)流圖

數(shù)據(jù)流圖說明輸出值是怎樣從輸入值得來的,數(shù)據(jù)流圖通常按層次組織。

(五)確定操作

在建立對(duì)象模型時(shí),確定了類、關(guān)聯(lián)、結(jié)構(gòu)和屬性,還沒有確定操作。只有建立了動(dòng)態(tài)模型和功能模型之后,才可能最后確定類的操作。

程序設(shè)計(jì)

基本思想

面向?qū)ο缶幊蹋∣bject?Oriented?Programming,OOP,面向?qū)ο蟪绦蛟O(shè)計(jì))的主要思想是把構(gòu)成問題的各個(gè)事務(wù)分解成各個(gè)對(duì)象,建立對(duì)象的目的不是為了完成一個(gè)步驟,而是為了描敘一個(gè)事物在整個(gè)解決問題的步驟中的行為。面向?qū)ο蟪绦蛟O(shè)計(jì)中的概念主要包括:對(duì)象、類、數(shù)據(jù)抽象、繼承、動(dòng)態(tài)綁定、數(shù)據(jù)封裝、多態(tài)性、消息傳遞。通過這些概念面向?qū)ο蟮乃枷氲玫搅司唧w的體現(xiàn)。??

傳統(tǒng)的結(jié)構(gòu)化設(shè)計(jì)方法的基本點(diǎn)是面向過程,系統(tǒng)被分解成若干個(gè)過程。而面向?qū)ο蟮姆椒ㄊ遣捎脴?gòu)造模型的觀點(diǎn),在系統(tǒng)的開發(fā)過程中,各個(gè)步驟的共同的目標(biāo)是建造一個(gè)問題域的模型。在面向?qū)ο蟮脑O(shè)計(jì)中,初始元素是對(duì)象,然后將具有共同特征的對(duì)象歸納成類,組織類之間的等級(jí)關(guān)系,構(gòu)造類庫。在應(yīng)用時(shí),在類庫中選擇相應(yīng)的類。??

面對(duì)對(duì)象程序設(shè)計(jì)是盡可能地在模擬人類的思維。通過這樣的方式能夠讓開發(fā)的軟件更加符合人類的認(rèn)知,人們使用起來也能夠更加順手。并且通過應(yīng)用軟件能夠切實(shí)地解決現(xiàn)實(shí)生活中的問題。面向?qū)ο蟪绦蛟O(shè)計(jì)使得描述問題的問題空間和問題的解決方法空間組合在一起,并且盡可能地保持一致。能夠?qū)⒖陀^世界中的抽象問題轉(zhuǎn)化為具體的問題對(duì)象。??

面向?qū)ο蟮乃季S更符合人認(rèn)識(shí)和思考問題的方式,面向?qū)ο蟮母拍詈蛻?yīng)用已經(jīng)超越了軟件開發(fā)和程序設(shè)計(jì),擴(kuò)展到多個(gè)的領(lǐng)域,其中一個(gè)應(yīng)用的分支就是面向?qū)ο蟮闹R(shí)表示法。這種表示法把組成客觀世界的實(shí)體抽象為數(shù)據(jù)和對(duì)數(shù)據(jù)的操作,并使用類把數(shù)據(jù)和對(duì)數(shù)據(jù)的操作封裝成為一個(gè)不可分割、互相依存的整體。面向?qū)ο蟊硎镜闹R(shí)更接近客觀世界,表示方案更加自然,易于理解。面向?qū)ο蠹夹g(shù)良好的模塊性,面向?qū)ο蟮南到y(tǒng)良好的可維護(hù)性、可擴(kuò)充性和可重用性等特點(diǎn),正符合人們組織和管理知識(shí)庫的需求。??

實(shí)現(xiàn)

(一)程序設(shè)計(jì)語言

⒈選擇面向?qū)ο笳Z言

采用面向?qū)ο蠓椒ㄩ_發(fā)軟件的基本目的和主要優(yōu)點(diǎn)是通過重用提高軟件的生產(chǎn)率。因此,應(yīng)該優(yōu)先選用能夠最完善、最準(zhǔn)確地表達(dá)問題域語義的面向?qū)ο笳Z言。??

在選擇編程語言時(shí),應(yīng)該考慮的其他因素還有:對(duì)用戶學(xué)習(xí)面向?qū)ο蠓治?、設(shè)計(jì)和編碼技術(shù)所能提供的培訓(xùn)操作;在使用這個(gè)面向?qū)ο笳Z言期間能提供的技術(shù)支持;能提供給開發(fā)人員使用的開發(fā)工具、開發(fā)平臺(tái),對(duì)機(jī)器性能和內(nèi)存的需求,集成已有軟件的容易程度。??

⒉程序設(shè)計(jì)風(fēng)格

⑴提高重用性。

⑵提高可擴(kuò)充性。

⑶提高健壯性。??

(二)類的實(shí)現(xiàn)

在開發(fā)過程中,類的實(shí)現(xiàn)是核心問題。在用面向?qū)ο箫L(fēng)格所寫的系統(tǒng)中,所有的數(shù)據(jù)都被封裝在類的實(shí)例中。而整個(gè)程序則被封裝在一個(gè)更高級(jí)的類中。在使用既存部件的面向?qū)ο笙到y(tǒng)中,可以只花費(fèi)少量時(shí)間和工作量來實(shí)現(xiàn)軟件。只要增加類的實(shí)例,開發(fā)少量的新類和實(shí)現(xiàn)各個(gè)對(duì)象之間互相通信的操作,就能建立需要的軟件。??

一種方案是先開發(fā)一個(gè)比較小、比較簡單的來,作為開發(fā)比較大、比較復(fù)雜的類的基礎(chǔ)。

⑴“原封不動(dòng)”重用。

⑵進(jìn)化性重用。

一個(gè)能夠完全符合要求特性的類可能并不存在。??

⑶“廢棄性”開發(fā)。

不用任何重用來開發(fā)一個(gè)新類。

⑷錯(cuò)誤處理。

一個(gè)類應(yīng)是自主的,有責(zé)任定位和報(bào)告錯(cuò)誤。??

(三)應(yīng)用系統(tǒng)的實(shí)現(xiàn)

應(yīng)用系統(tǒng)的實(shí)現(xiàn)是在所有的類都被實(shí)現(xiàn)之后的事。實(shí)現(xiàn)一個(gè)系統(tǒng)是一個(gè)比用過程性方法更簡單、更簡短的過程。有些實(shí)例將在其他類的初始化過程中使用。而其余的則必須用某種主過程顯式地加以說明,或者當(dāng)作系統(tǒng)最高層的類的表示的一部分。??

在C++和C中有一個(gè)main()函數(shù),可以使用這個(gè)過程來說明構(gòu)成系統(tǒng)主要對(duì)象的那些類的實(shí)例。

(四)面向?qū)ο鬁y試

⑴算法層。

⑵類層。

測試封裝在同一個(gè)類中的所有方法和屬性之間的相互作用。

⑶模板層。

測試一組協(xié)同工作的類之間的相互作用。

⑷系統(tǒng)層。

把各個(gè)子系統(tǒng)組裝成完整的面向?qū)ο筌浖到y(tǒng),在組裝過程中同時(shí)進(jìn)行測試。?

分類

面向?qū)ο蠓椒ǖ奶崛☆愃茮Q策樹的構(gòu)思,從簡到繁,先剔除其他無關(guān)信息,再經(jīng)過多次篩選找出有用的地物類別,實(shí)現(xiàn)地物的分層提取。經(jīng)過多尺度分割后,需要對(duì)分割后的單個(gè)對(duì)象進(jìn)行劃分,選擇合適的參數(shù)或者規(guī)則將對(duì)象與其他對(duì)象區(qū)分開來,以實(shí)現(xiàn)各種地物的分類。

面向?qū)ο蠓诸愄崛⌒畔⒌姆椒ㄝ^傳統(tǒng)分類方法更具有優(yōu)勢,前者充分考慮高分辨率影像的各種類型的特征,包括光譜、形狀和紋理等空間特征。而后者是通過選擇訓(xùn)練樣本,軟件自動(dòng)建立判別函數(shù)對(duì)其他未識(shí)別的樣本進(jìn)行判斷。相比而言,面向?qū)ο蠓椒ㄔ谶@方面更具有針對(duì)性,目標(biāo)更明確,針對(duì)的就是分割后的圖斑,因此分類的結(jié)果精度更高。但如何應(yīng)用好面向?qū)ο蟮姆椒ǎ枰芯空哒莆掌湎嚓P(guān)的軟件操作和機(jī)理,比如分割尺度的設(shè)定、特征空間的選擇。

使用面向?qū)ο蠓诸惖倪^程中,易受人的主觀因素影響。比如特征空間的構(gòu)建、特征體系的建立,在分類的后處理中也同樣涉及了人機(jī)交互修正。因此,面向?qū)ο蟮姆椒m然智能,但如果能盡量減少人工的參與,可能會(huì)提升該方法的智能化水平。

易混概念

“面向?qū)ο蟆焙汀盎趯?duì)象”

面向?qū)ο蟮娜筇攸c(diǎn)(封裝,繼承,多態(tài))缺一不可。通?!盎趯?duì)象”是使用對(duì)象,但是無法利用現(xiàn)有的對(duì)象模板產(chǎn)生新的對(duì)象類型,繼而產(chǎn)生新的對(duì)象,也就是說“基于對(duì)象”沒有繼承的特點(diǎn)。而“多態(tài)”表示為父類類型的子類對(duì)象實(shí)例,沒有了繼承的概念也就無從談?wù)摗岸鄳B(tài)”。很多流行技術(shù)都是基于對(duì)象的,它們使用一些封裝好的對(duì)象,調(diào)用對(duì)象的方法,設(shè)置對(duì)象的屬性。但是它們無法讓程序員派生新對(duì)象類型。他們只能使用現(xiàn)有對(duì)象的方法和屬性。所以當(dāng)你判斷一個(gè)新的技術(shù)是否是面向?qū)ο蟮臅r(shí)候,通??梢允褂煤髢蓚€(gè)特性來加以判斷?!懊嫦?qū)ο蟆焙汀盎趯?duì)象”都實(shí)現(xiàn)了“封裝”的概念,但是面向?qū)ο髮?shí)現(xiàn)了“繼承和多態(tài)”,而“基于對(duì)象”沒有實(shí)現(xiàn)這些,的確很饒口。??

“面向過程”和“面向?qū)ο蟆?/p>

面向過程就是分析出解決問題所需要的步驟,然后用函數(shù)把這些步驟一步一步實(shí)現(xiàn),使用的時(shí)候一個(gè)一個(gè)依次調(diào)用就可以了;面向?qū)ο笫前褬?gòu)成問題事務(wù)分解成各個(gè)對(duì)象,建立對(duì)象的目的不是為了完成一個(gè)步驟,而是為了描敘某個(gè)事物在整個(gè)解決問題的步驟中的行為。??

可以拿生活中的實(shí)例來理解面向過程與面向?qū)ο螅缥遄悠?,面向過程的設(shè)計(jì)思路就是首先分析問題的步驟:1、開始游戲,2、黑子先走,3、繪制畫面,4、判斷輸贏,5、輪到白子,6、繪制畫面,7、判斷輸贏,8、返回步驟2,9、輸出最后結(jié)果。把上面每個(gè)步驟用不同的方法來實(shí)現(xiàn)。??

如果是面向?qū)ο蟮脑O(shè)計(jì)思想來解決問題。面向?qū)ο蟮脑O(shè)計(jì)則是從另外的思路來解決問題。整個(gè)五子棋可以分為1、黑白雙方,這兩方的行為是一模一樣的,2、棋盤系統(tǒng),負(fù)責(zé)繪制畫面,3、規(guī)則系統(tǒng),負(fù)責(zé)判定諸如犯規(guī)、輸贏等。第一類對(duì)象(玩家對(duì)象)負(fù)責(zé)接受用戶輸入,并告知第二類對(duì)象(棋盤對(duì)象)棋子布局的變化,棋盤對(duì)象接收到了棋子的變化就要負(fù)責(zé)在屏幕上面顯示出這種變化,同時(shí)利用第三類對(duì)象(規(guī)則系統(tǒng))來對(duì)棋局進(jìn)行判定。??

可以明顯地看出,面向?qū)ο笫且怨δ軄韯澐謫栴},而不是步驟。同樣是繪制棋局,這樣的行為在面向過程的設(shè)計(jì)中分散在了多個(gè)步驟中,很可能出現(xiàn)不同的繪制版本,因?yàn)橥ǔTO(shè)計(jì)人員會(huì)考慮到實(shí)際情況進(jìn)行各種各樣的簡化。而面向?qū)ο蟮脑O(shè)計(jì)中,繪圖只可能在棋盤對(duì)象中出現(xiàn),從而保證了繪圖的統(tǒng)一。

亚洲免费人成视频| 人人妻人人干| 国产激情视频在线播放| 欧美一a一片一级一片| 日本老熟妇视频| a视频在线| 免费日韩AV| 亚洲三级片网站| 亚洲色婷婷五月天| 国产精品久久久久久久AV超碰| 老外和中国女人毛片免费视频| 91视频精品| 亚洲中文字幕无码AV| 国产乡下妇女做爰| 免费无码视频| 成人妇女免费播放久久久| 国产精品a62v久久77777| 免费看一级一级人妻片| 在线精品国产| 91色逼资源| 91老熟女| 十八禁视频网站| 成人性爱视频在线免费观看 | 日韩电影在线观看中文字幕| 国产乱伦小说| 国产免费一区二区三区在线观看| 尤物AV在线| 亚洲精品久久夜色撩人男男小说| 色橹橹欧美在线观看视频高清| 漂亮人妻洗澡公日日躁| 九色自拍| 精品久久av| 探花日韩无码| 日韩成人中文字幕| 国产毛片在线看| 精品无码一级毛片免费| 中文字幕一区三区| 亚洲无码爱爱| 亚洲天堂AV在线播放| 欧美一区二区三区免费A片老妇人| 99精品在线| 午夜无码免费| 日韩无码一区二区三区| 国产精品亚洲精品| 国产在线无码| 亚洲有码在线观看| 一区二区三区视频在线| 亚洲性爱专区| 国产一区黄片| 免费一级av| 国产欧美视频一区| 一级α片免费看刺激高潮视频| 性生生活大片又黄又| 熟女一区二区三区| 亚洲天堂网站| 九九热精品视频| 黄色性爱网| 成人午夜毛片| 探花日韩无码| 国产男生拳交女生在线播放| 秋霞在线影院| 无码一区在线播放| 日本久久三级片| 亚洲一区二区三区丝袜| 热久久伊人| 欧美一级特黄aaaaa片| 亚洲香蕉在线观看| 国产精品国产三级国产专业不| 久久精品电影| 日韩AV一卡| 国产亲子乱露脸一区二区| 操人网站| 国产精品一二三产区m553小说| 精品国产一区二区三区久久久蜜月| 18禁无遮挡网站视频网站免费| 手机在线看黄色片| 国产伦精品一区二区三区午夜影视| 免费av一区| 国产做a视频| 调教 SM 重口 H文 HY| 91亚洲视频| 99在线播放| 日韩中文字幕在线| 精品一区二区久久| 在线观看AV免费| 无码不卡电影| 久久亚洲欧美| AV网站免费观看| 国产激情无码| 搡60一70老女人老妇女| 人人色人人摸人人搞| 久久久久99精品成人网站| 成人无码毛片| 青娱乐最新视频| 思思热在线观看视频| 亚洲免费观看视频| 天天操天天日天天射| aaa国产| 亚洲色婷婷综合久久久久中文| 操碰在线视频| 日本无码专区| 亚洲国产精品成人| 久久久久无码精品国产高潮| 亚洲AV无码专区国产精品色欲| 黄片无码视频| www国产视频| 午夜久久久久久禁播电影 | 国产精品久久久午夜夜伦鲁鲁| 无码人妻aⅴ一区二区三区有奶水| 嫩草国产| 一级黄色片毛片| 日本黄a三级三级三级| 国产精品久久久久久婷婷天堂| 亚洲成肉网| 久久国产福利| 色视频免费看| 欧美精品自拍| 亚洲天堂黄色| 午夜精品视频| AV不卡在线| 国产农村高清无套内谢视频| 国产精品一区二区三区不卡| 久久夜夜| 一级特黄女人18毛片免费视频| 无码一区二区三区中文字幕| 中文字幕国产| 亚洲网站在线观看| 嫩草在线视频| 久久国产福利| 欧美熟妇激情一区二区三区| 午夜无码在线观看| 欧美伊人激情| 欧美呦呦| 日韩强奸乱伦Av| 国产成人在线看| 国产jizz| 热久久91| 亚洲无码免费| 国产黄色影院| 一级性爱视频| 国产无码在线免费看| 日韩免费| 国产AV久剧情久久久| 欧美综合色| AV一区二区三区在线| 国产中文字幕在线观看| 亚洲乱色熟女一区二区三区| 日韩免费看片| 无码人妻精品一二三区免费百度| 天天射天天操天天日| 成人深夜福利| 午夜黄色一级片| 日韩免费高清| 夜夜操影院| 天堂无码在线观看| 国产香蕉一区二区三区| 一色一伦一区二区三区| 国产香蕉一区二区三区| 每日更新AV| 日韩无码电影| 久久亚洲国产精品无码区| youjizz国产| 强奸乱伦1区2区3区| 一级黄片在线| 国产伦精品一区二区三区妓女下载 | 久久精品三区| 人妻 丝袜美腿 中文字幕| 男女猛烈无遮挡| 国产精品999久久久| 国产乱码精品一品二品| 一级日韩一级欧美| 欧美福利在线| 亚洲午夜无码AV毛片久久| 亚洲精品无码久久久苍井空| 中文在线a√在线8| 国产黄片在线视频| 国产真实老头老太BBWBBW| 亚洲一级大片| 国产精品色片| 日本一级毛片免费观看| 中文字幕 一区二区三区| 自拍三级片| 一色综合| 91丨九色丨蝌蚪丰满| 久草福利视频| 综合久久综合| 国产男生拳交女生在线播放| 中文无码在线观看| 91久久精品国产91久久公交车| 黄色链接在线观看无码| 久久av无码| 日韩 精品 无码 系列 另类| 爱操逼网| 夜夜干天天操| 欧美日韩成人影院| 国产一级a毛一级a免费看视频| 国产又粗又猛又大爽| 热久久最新地址| 日韩av综合| 一区二区无码在线观看| 国产激情在线| 中文毛片无遮挡高潮免费| 2023年中文字幕无码不卡| 欧美一级黄色大片| 日本一级A片| 久久久久国色AV免费观看麻豆| 深夜成人视频在线| 夜夜操夜夜干| 国产精品高清无码在线观看| 成人免费毛片| 国产精品视频网| 国产一级一级毛片| 91精品91久久久中77777| 国产一区二区91羞羞色院九九九| 精品国产青草久久久久福利| 成人第一页| 国产色图乱伦| 欧美性爱一区二区社区| 国产网曝门事件福利视频| 三年片观看免费观看大全| 黄片高清| 无码精品久久| 久久精品老司机| 亚洲精品久久久| 亚洲男人的天堂av| 乱色熟女综合一区二区三区四| 亚洲视频久久| 国产一区二区免费视频| 中文字幕人妻一区二区| 亚洲无码视频在线观看| 午夜福利理论片一区二区三区| 变态另类第一页| 久久黄色网址| 91精品夜夜夜一区二区| BAOYU| 无码AV资源| 男女国产| 无码电影在线看| 韩日视频在线| 亚洲AV午夜精品一区二区三区| 自拍偷拍一区| 无码人妻束缚av又粗又大| 日韩黄色录像| 岛国无码| 免费一级毛片| 毛片一区二区| 2023年中文字幕无码不卡| 欧美性爱视频电影莞式性爱视频电影免费看 | 国产无码AV| 精品亚洲AV无码| 日韩av男人天堂| 天天干夜夜干。| 国产成人精品无码一区二区蜜柚| 最新精品国产| 亚洲三级片在线播放| 天天摸天天操| 天天插天天日| 中文国产视频| 91亚色在线观看| 天天色影院| 欧美激情乱伦| 亚洲一区二区三区视频| 成人影片在线播放| 亚洲大片免费看| 国产自慰网站| 丰满少妇伦精品无码专区| 中文字幕人妻AV| 国产一区a| 人人摸人人摸| 国产不卡AV在线| 99精品免费观看| 巨爆乳肉感一区二区三区竹菊影视| 久久久国产精品| av影音先锋| 免费激情网站| 一级外国欧美性爱黄色录像| 成人亚洲性情网站WWW在线观看| 福利姬在线观看| 国精产品一区一区三区四区| 性爱在线视频吗| 97超碰护士| 一级免费黄色片| 亚洲精品巨爆乳无码大乳巨| 成人三级无码| 91麻豆精品秘密入口| 正文第1章初尝云雨| 国产黄色片在线观看| 黄色成人在线| 久久久影院| 日韩无码aaa| 一级片国产| 午夜天堂精品| 国产精品视频一区二区三区不卡| 亚洲无码高清在线观看| 综合AV在线| 天天日天天操天天射| 亚洲国产精品一区二区久久恐怖片| 亚洲无码偷拍| 成人美女| 欧美日韩一区二区在线观看| 又黄又大又爽A片三年片| 国产日本精品| 97精品国产97久久久久久免费| 激情欧美一区二区三区| 五月丁香中文字幕| 欧美一区视频| 亚洲视频一二区| 日本欧美国产| 国产97超碰| 国产婷婷| 国产精品av久久久久久无| 免费A片国产毛无码A片78膜| 免费日韩AV| 秋霞午夜| 欧美爱爱视频| 久久小电影| 国产秋霞| 成人大香蕉| 国产毛片久久久久| 日韩美女网站| 欧美一区二区三区在线视频| 一区二区无码高清| 欧美一区二区在线播放| 99re在线精品视频| 一级毛片视频| 亚洲A片精品成人不卡| 一区二区三区无码按摩精电影| 久久性爱免费的| 黄色小视频在线免费观看| 午夜想操你逼| 91福利导航| 婷婷五月丁香五月| 无码天堂| 国产精品国产三级国产普通话99| 97精品人人A片免费看| 精品香蕉99久久久久网站| 人妻九九| 一级香蕉,黄色片| 久久精品视频一区| 无码aⅴ精品日本无码久久| 亚洲天天操| 久久香蕉黄色电影| 精久久久久久| 亚洲人妻av| 日本视频久久| 青青操在线播放| 中文字幕精品一区久久久久| 91网站免费入口| 一二区无码| 亚洲成人无码在线观看| 黄色国产在线观看| 欧美人人操人人摸| 日韩亚洲一区二区| 国产综合自拍| 国产一级a免一级a看免费视频| av成人导航| 国产视频一区二区在线播放| 91网址| 亚洲综合图片小说| 天天日天天操天天搞| 国产精品理论片| 一区二区三区在线| 久久久久亚洲AV无码专区首护士 | 91无码人妻精品一区二区| 99久久久国产精品无码 | 日本无码完整视频波多野结衣| 国产三级片在线免费观看| 国产激情一区| 亚洲一区av| 屁屁影院第一页| 乱伦我不卡| 老妇高潮潮喷到猛进猛出| 特黄毛片| 亚洲群交| 日韩AV导航| 久久精品免费| 老熟妇视频| 无码少妇精品一区二区免费动态| 欧美日韩免费看| 精品无码在线| 中文无码在线观看| 二区视频在线| 无码视频二区| 无码高清成人| 台湾一级黄片| 日本久久一区| 福利导航站| 成人网站在线观看无打码| 人人人人看人人干| 日韩无码多人操逼| 久久国产小视频| 久久精彩免费视频| 日本丰满熟女视频中文字幕 | 久久精品99| 欧美一级精品| 亚洲精品在线观看视频| 秋霞无码| 精品久久一区二区| 国产无码一区二区| 欧美熟女一区二区三区| 国产黄色影院| 国产无码a v| Av天堂一区二区三区| AV天堂国产| 国产精品熟女高潮无套| 黄片免费的| 免费高清无码在线| 久久666| 自拍视频一区| 久久福利| 亚洲高清毛片一区二区| 亚洲性爱无码| 国产毛片在线| 中文字幕熟女人妻偷伦天美| 无码精品一区二区三区色欲| 青青超碰| 成人网站在线进入爽爽爽| 99er热精品视频| 熟女毛片| 亚洲一区AV| 日本午夜精品| 日韩天天操| 污网站免费| 熟女乱伦视频| 中文在线а天堂中文在线新版| www.yeye操| 亚洲AV怡红院| 一级Av片| 国产视频一区二区在线观看| 久久久久www| 又大又粗又硬又爽又黄毛片视频| 久久99精品久久久久久水蜜桃| 亚洲婷婷五月天| 日本午夜福利视频| 午夜爱爱毛片XXXX视频免费看| 少妇视频一区| 91视频免费在线观看| 在线视频中文字幕| 操逼视频无码免费看| 国产精品内射婷婷一级二| 国产一级免费视频| 亚洲AV不卡无码| 天天操天天干青青草| 无码人妻精品一区二区三区不卡| 久久综合一区| 日韩电影在线观看中文字幕| 九九视频精品在线| 精品偷拍一区二区三区在线看| 麻豆91视频| 久久99电影| 一级特黄AAAA片| 91麻豆精品国产91| 男女国产精品| 国产一级毛片精品A片在线美传媒| 一本一道久久a久久精品综合蜜臀 国产精品久久久久久久久无码ⅴa | 黄视频网站| 日韩欧美V| 国产性爱一级片| 热久久免费视频| 无码中字在线观看| 九九热精品在线| 两个人看的www在线视频| 久久久久性色av无码一区二区| 国产欧美综合一区二区三区| 久久国产高清视频| 日韩无码网| 秋霞伦理视频| 国产欧美日韩一区二区三区| 人妻久久无码| 国产福利在线观看| 人妻中文无码| 人人看人人干| 娇妻被交换粗又大又硬影视| 欧美一区二区三区成人片在线| 怡红院亚洲| 中国黄色一级视频| 欧美一区二区精品| 91精品国产aⅴ一区二区| 91在线精品视频| 五月丁香中文字幕| 国产成人久久| 精品久久九九| 国产高清成人| 日日爽夜夜爽| 色呦呦在线观看视频| 男女啪啪啪网站| 91大神网址| 二区三区偷拍浴室洗澡视频| 肉大捧一进一出免费视频| 日韩精品免费在线| 国产精品一区二区AV白丝下载| 午夜美女操逼| 香蕉久久a毛片| 天天操天天透| 亚洲国产影院| 欧美性爱另类| 国产精品视频免费| 高清无码91| 91久久久久久久| 国产91精品在线| 国产在线精品免费aaa片| 久久激情网| 国产一区福利| 日韩无码视屏| 国产又粗又大视频| 国产性爱一级| 国产一区二区视频播放| 黑人巨大精品欧美一区二区免费| 欧美精品免费在线| 一性一交一伦一色一区二免费看| 五月婷婷在线视频| 精品国产91久久久久久浪潮蜜月| 久久伊人精品视频| 无码Av久久久久久久久品牌背景| 波多野结衣一区二区三区| 国产精品国产三级国产专播I12| 日本电影一区二区三区| 国产精品自产拍高潮在线观看 | 中文区中文字幕免费看| 91popn.com在线生产| 91婷婷| 亚洲成人毛片| 日本三级韩国三级美三级91| 天天操人人爱| 丁香婷婷在线| 国产精品tv| 97国产| 91久久国产综合久久| 美日韩强奸乱伦经典,视频| 欧美日韩国产高清| 一区二区中文字幕| 免费黄色网页| 日本免费在线观看| 思思热视频在线观看| 白丝喷白浆一区二区在线观看| 欧美日韩第一页| 精品国产99久久久久久宅男i| 粉嫩AV无码一区二区三区软件| 99视频99| 一区二区三区视频免费看 | 国产精品内射婷婷一级二| 久久露脸国语精品国产91| 99亚洲精品| 五月天性爱视频| 日本黄色不卡视频| 日韩精品久久久久久久酒店| 九九热免费| 中国妇被黑人XXX猛交| 成人高清无码| 色婷婷丁香五月| 男人午夜视频| 欧美精品久久久| 伊人一区| 久久久精品国产sm调教网站| 久久婷婷五月综合色国产香蕉| 国产精品免费久久久| 成人在线小视频| 国产精品51| 国产69精品久久久久777| 日本一区免费| 日韩欧美一级精品久久| 日本午夜福利视频| 欧美操操操| 真实乱视频国产免费观看| 国产成人一区二区| 对白刺激国产子与伦| 97精品人人A片免费看| 精品国产乱码久久久| 成人一级毛片| 午夜福利精品| BAOYU| 91人妻人人澡人人爽人人爽| 免费无码国产在线观看观喷水| 一级α片免费看刺激高潮视频| 日本成人不卡| 黄色操日本| 国产黄在么线| 亚洲一区自拍| 人妻熟女777视频一区| 国产精品久久欧美久久一区| 日韩精品视频在线| 成人电影一区| 丁香五月v国产| 国模一区二区| 在线观看av的网站| 国产天天操| 国产一级片免费| 91人妻中文字幕在线精品| 亚洲一区二区视频在线观看| 欧美精品第一区| 91亚色视频在线观看| 七天探花国产精品| 国产无码在线免费| 亚洲熟肉一区二区三区在线观看| 四虎无码| 久久久久亚洲精品| 香蕉网av| 国产成人无码www免费视频播放| 在线二区| 亚洲超碰在线| 囯产精品久久久久| 亚欧无码十八禁| 欧美日韩系列| 欧美第一区| 国产在线激情| 精品无人区一区二区三区蜜桃小说| 综合AV在线| 亚洲一区中文字幕| 欧美浮力第一页| 国产无码又爽又刺激| 久久久久久伊人| 亚洲综合色网| 色欲AV人妻精品一区二区三区 | 久久精品国产亚洲AV高清色欲| 美日韩一区二区三区| 一区二区三区欧美视频| 超碰AV翔田千里| 一区二区三区日韩欧美| 中文字幕在线观看一区| 91精品国产熟女| 亚洲黄色网址| 国产精品久久久久久久久久久久久免费看| 国产va视频| AV手机天堂网| 亚洲一区视频| 久久性爱电影网站| 日韩欧美在线一区二区| 日韩无码一区二区三区| 激情乱伦五月天| 欧美一级片免费看| 无码专区AV| 国产精品久久久久久久久久影院| 91激情视频| 国产精品情侣| 黑人极品videos精品欧美裸| 欧美久久久久| 免费在线观看黄| 五十路熟女乱伦| 久久日本无码中文字幕三级伦| free性丰满69性欧美| 三年片在线观看大全中国| 精品人妻一区二区三区含羞草| 91精品久久久久久久久| 麻豆人妻少妇69hd| 国产又色又爽又刺激在线播放| 国产三级精品三级在线观看| 天天操人人摸| 欧美日韩专区| 污网站在线免费观看| 九九免费视频| 国产精品偷伦视频免费观看国产| 视频一区二区在线| 新啪啪视频| 国产精品一区二| 鲁啊鲁熟女人妻一区二区| 日本国产视频| 亚洲综合社区| 三级性爱视频| 自拍偷拍图区| 日韩毛片无码| 国产精品99久久久久久www| 亚洲天堂AV网| 97福利视频| 操逼视频无码免费看| 高清无码小电影| 成人午夜福利在线观看| 欧美18禁| 亚洲一级网站| 久久黄色电影网站| 成人三级片在线观看| 中文字幕操逼视频| 国产精品天天狠天天看| 人人操狠狠干| 精品人伦一区二区三区牛牛视频 | 午夜成人app| 风间由美久久久无码人妻| 国产熟女鲁鲁视频| 亚洲有码在线| 国产a一级| 女人高潮毛片无遮挡| 免费毛片视频| 亚洲中文字幕在线观看| 美国a片| 99国产视频| 国产网站精品| 免费无码国产真人视频九色| 久久久三级片| 人人摸人人操人人| 影音先锋男人av资源| 亚洲色偷精品一区二区三区| 天堂综合网久久| 国产精品无码A∨在线播放| 亚洲黄色一区| 成人久久久| 伊人成人电影| 五月丁香五月婷婷| 国产精品一区二区在线| 国产中文字幕一区二区三区| 亚洲国产激情乱伦无码| 亚洲中文字幕一区二区| 国产福利91精品一区二区三区| 成人精品在线视频| 黄片免费下载观看| 亚洲免费观看| 亚洲精品国产suv一区| 嫩草影院在线免费观看| αⅴ天堂αⅴ| 日韩无码视屏| 超碰香蕉| 亚洲一级电影| 99无码| 99视频导航| 欧美V性爱| 亚洲黄色一区二区| 国产毛片毛片毛片毛片| 成人动漫在线观看| 精品欧美一区二区三区免费观看 | 国产主播一区二区三区| 中文字幕免费在线播放| 国产做a爱片久久毛片A片古代| 婷婷色视频| 一级无码视频| 乱伦熟妇| 亚洲高清毛片一区二区| 国产精品乱码一区二区三区| 亚洲伦理在线| 极品白丝 国产| 午夜精品久久久久久久99热浪潮| 三级在线观看| 日韩欧美精品一区| 中文无码字幕| 黄色片网站在线观看| 欧美日日| 日韩无码成人| 国产精品免费在线| 福利视频导航大全| 激情五月天在线| 亚洲图片欧美另类| 夜夜高潮夜夜爽精品欧美做爰| 99国产精品自拍| 精品无码av一区二区鲁一鲁| 婷婷色视频| 国产美女久久| 八戒午夜福利理论片| 国产欧美日韩在线观看| 人妻精品一区| 中文字幕人妻无码| 国产人妖| 我不卡影院| 国产电影精品一区| 黄色精品视频在线观看| 日韩黄片一区| 嫩草九九九精品乱码一二三| 性爱视频高清一区| A级黄色片网站| 91精品国自产| 先锋影音一区二区| 自拍偷拍欧美亚洲| 亚洲三级片免费观看| 日韩AV无码中文无码不卡电影| 无码一区二区三区| 日韩成人无码视频| 日韩一区二区三区视频| 国产露脸91国语对白| 色色色网站| 久久精品亚洲精品国产欧美KT∨| 成人无码片免费178www| 欧美久久免费| 国产极品jizzhd欧美| 91无码人妻精品国产色欲毛片| 国产精品久久久久久久久免费看 | 玖玖视频在线| 91麻豆精品秘密入口| 人妻毛片| 一区二区三区成人| 国产精品久久不卡| 成人在线视频app| 国产视频精品在亚洲| 69AV在线观看| 国产精品国产三级国产aⅴ入口| 无码aaa| 成人免费无码淫片在线观看免费| 欧美精品视频在线| 精品人豆妻| 日日日操操操| 高清无码在线看| 成人亚洲精品久久久久软件| 91亚洲国产成人久久精品网站| 牛牛av色| 狼人综合网| 国产性爱一级片| 成人动漫在线观看| 超碰国产在线观看| 国产欧美日| 91电影| 国产AV无码一区二区| 国产又粗又长又硬| 天天操夜夜爽| 国产精品精品视频| 四川熟女大白屁股91爽| 日韩少妇人妻| 日本伊人网| av黄片| 亚洲成人无码在线| 中文字幕二区| JDAV视频在线观看免费| 午夜成人网站在线观看 | 精品亚洲AV无码| 精品无码无套内谢| 国产性色| 亚洲黑人Av| 久久手机免费视频| 欧美美女一区二区三区| 精品午夜一区二区三区在线观看 | 天天日夜夜草| 波多野结衣久久| 高清无码一二三区| 久久专区| 黄色无码在线| 午夜不卡AV免费| 国产在线观看AV| 国产无码乱伦视频| 日韩无码视频一区| 老妇激情毛片免费| 天天日天天干天天操| 日日夜夜精品| 亚洲精品久久久久玩吗| 欧美三级在线| 黄色片福利| 一级肉体AAAA片免费看| 中文人妻| 精品无码人妻一区二区三区| 操逼视频观看| 丁香五月婷婷在线观看| 天天日天天插| 一区二区操逼视频| 91成人无码看片在线观看网址| 精品殴美性生活| 免费看黄色片| 人人搞人人操人人插人人摸| 欧美性爱一区| 亚洲影视久久| 一级黄片在线| 黄色的操人视频| 国产精品第1页| 综合色线视频网站| 无遮挡无掩盖的网站| 精品欧美一区二区久久久伦| 最新无码视频| 精品在线不卡| 亚洲无码一区在线观看| 国产午夜精品视频| 欧美一级视频| 天天射影院| 午夜精品久久久久久久99热浪潮| 日韩无码AV电影| 国产真实乱了老女人视频| 香蕉视频黄色| 日本在线不卡视频| 亚洲中文字幕一区二区| 国产精成人品日日拍夜夜免费| 久久精品二区| 亚洲精品乱码久久久久久久久久久久| 日本精品成人无码中文字幕网址 | 日本巜侵犯人妻人伦| 国产永久免费| 热久久网站| 三级无码在线| 日韩精品无码熟人妻视频| 高清一区无码| 在线免费观看毛片| 亚洲天天| 中国无码视频| 午夜性福利视频| 免费A片久久久久久16色| 超碰在线伊人| 国产中文自拍| 日韩高清在线观看| 久久无码电影| 成人精品水蜜桃| 亚洲无码一区二区在线| 欧美亚洲黄片| 狠狠干网址| 在线欧美日韩| 亚洲片在线观看| 国产精品福利网站| 午夜成人在线| 亚洲va韩国va欧美va精品| 日韩熟女激情中文字幕| 一级片网址| 久久精品熟妇丰满人妻99| 国产特黄一级片| 欧美另类性| 黄色三级片在线观看| 国产一区二区在线视频| www国产视频| 大香蕉一人在线| 欧美多毛熟妇| 涩涩视频在线观看| av黄色| 午夜福利国产| 精品无码国产AV一区二区三区| 杨幂一区二区三区免费看视频| 99国产精品久久久久久久日本竹| 欧美高清一级| 国产美女黄色地址 竹菊影视| 麻豆91视频| 久久精品国产AV| 无码电影在线播放| 超碰黄色| 久久久久国产视频| 韩国一级a做片性全过程| 欧美肥老太交性视频| 影音先锋中文字幕资源6| 天天躁日日躁AAAAXXXX欧美| 成年免费视频黄网站在线观看 | 国产精品久久久久久久久晋中| 国产黄色精品| 无码人妻久久一区二区三区免费人妻| 国产XXXX孕妇| 人人爱 人人摸| 影音先锋成人AV| 久久久夜夜夜| 婷婷色在线| 日韩国产成人| 中文字幕精品视频在线观看| 成年人免费视频网站| 毛片免费看|