根據(jù)運行的環(huán)境,操作系統(tǒng)可以分為桌面操作系統(tǒng),手機操作系統(tǒng),服務(wù)器操作系統(tǒng),嵌入式操作系統(tǒng)等。 閱讀目錄 面向過程: 面向過程的程序設(shè)計POP 面向?qū)ο? 面向?qū)ο蟮木幊蘋OP 面向服務(wù): 面向服務(wù)的體系結(jié)構(gòu)SOA 面向過程的程序設(shè)計采用了節(jié)省時間的策略,因為在早期,計算機配置很低并且內(nèi)存很小,即使運行時間更長,如何保存內(nèi)存也成為主要任務(wù). 隨著硬件技術(shù)的發(fā)展,硬件不再成為瓶頸. 相反,由于突出了對現(xiàn)實世界的更好仿真和系統(tǒng)的可維護性等問題,因此面向?qū)ο蟮脑O(shè)計應(yīng)運而生. 如今: 在PC上應(yīng)用的通用應(yīng)用系統(tǒng),由于不需要考慮硬件的限制面向過程程序,但是系統(tǒng)的可維護性要求很高,一般采用面向?qū)ο蟮姆椒ǎ徊⑶覂?nèi)存需求有限的嵌入式系統(tǒng),大多使用面向過程的設(shè)計和編程. 面向過程(POP)是分析解決問題的步驟,然后使用函數(shù)逐步實現(xiàn)這些步驟,然后在使用它們時一一調(diào)用它們. 面向?qū)ο螅∣OP)是將構(gòu)成問題的事務(wù)分解為單個對象,創(chuàng)建對象的目的不是完成每個步驟,而是描述解決整個問題過程中某事物的行為. . 這是一個示例,用于說明面向過程和面向?qū)ο蟮木幊? 面向服務(wù)(SOA)是用于系統(tǒng)開發(fā)的新系統(tǒng)體系結(jié)構(gòu). 在基于SOA架構(gòu)的系統(tǒng)中,特定應(yīng)用程序的功能是通過將松散耦合的組件(即服務(wù))與統(tǒng)一的接口定義方法相結(jié)合來構(gòu)建的,從而具有對快速變化的業(yè)務(wù)環(huán)境的良好適應(yīng)性. 使用面向服務(wù)的編程,設(shè)計人員只需集成各種服務(wù)即可完成系統(tǒng)構(gòu)建. 通常,面向服務(wù)的體系結(jié)構(gòu)主要用于分布式系統(tǒng)的構(gòu)建. 設(shè)計人員集成了一些服務(wù),以通過特定的數(shù)據(jù)格式完成系統(tǒng)構(gòu)建. 與面向過程和面向?qū)ο笙啾龋嫦蚍⻊?wù)的思想最為細化. . 面向?qū)ο螅嫦蜻^程和面向服務(wù)仍然是廣泛的指導(dǎo)性編程思想. 它們相互補充,可以幫助我們完成軟件設(shè)計任務(wù). 首次使用面向流程的內(nèi)容: 1. 開始游戲, 2. 黑子先走 3. 畫畫, 4. 判斷勝負, 5. 百子輪到了, 6. 畫畫, 7. 判斷勝負, 8. 返回步驟2, 9. 輸出最終結(jié)果. 上面的每個步驟都作為一個單獨的函數(shù)實現(xiàn),問題得以解決. 面向?qū)ο笤O(shè)計是從另一個想法解決問題. 整個步步高可分為: 1. 黑白兩邊的行為完全一樣, 2. 棋盤系統(tǒng),負責(zé)繪制圖片, 3. 規(guī)則系統(tǒng),負責(zé)確定諸如犯規(guī),輸贏等. 第一種類型的對象(玩家對象)負責(zé)接受用戶輸入,并向第二種類型的對象(棋盤對象)通知作品布局的變化. 棋盤對象接收棋子的變化,并負責(zé)在屏幕上顯示此變化. 同時使用第三種類型的對象(規(guī)則系統(tǒng))來確定游戲. 面向?qū)ο蟊WC了功能的統(tǒng)一性,從而為擴展奠定了基礎(chǔ). 現(xiàn)在我們需要添加后悔象棋的功能,如果要更改面向過程的設(shè)計,則必須更改從輸入到判斷再到顯示的一系列步驟,甚至必須大幅度調(diào)整這些步驟之間的順序. 規(guī)模. 如果是面向?qū)ο蟮模瑒t只需更改棋盤對象. 該棋盤系統(tǒng)保存了黑白棋盤. 簡單的回溯就足夠了,并且不必考慮顯示和規(guī)則判斷. 同時,調(diào)用對象函數(shù)的順序沒有改變. 更改僅是部分的. 這表明面向?qū)ο蟾菀讛U展. 返回目錄 顧名思義,面向過程是一種以過程為中心的編程思想. 它也可以稱為“面向記錄的”. 該過程可以做的是分析解決問題所需的步驟,然后使用該功能逐步實現(xiàn)這些步驟. 使用時,只需一一解決即可. 例如,當(dāng)我們?nèi)ビ嬎銠C房上課時,這是我們開始上課的事件,而這是下課后關(guān)閉的事件. 在編程時,我們關(guān)心的是某個事件,而不是類本身. 對于面向過程的想法,只要編寫針對班級和班級的程序即可編寫班級程序,則無需關(guān)心如何上班以及其他內(nèi)容. 返回目錄 2.1. 含義 面向?qū)ο笫且环N基于一件事的編程思想. 他允許我們在分析和解決問題時將思考的重點轉(zhuǎn)向現(xiàn)實中的對象,將構(gòu)成的事物分解為各種對象,并建立對象,以便在解決問題的整個步驟中描述事物的行為,然后通過UML工具闡明這些對象之間的連接,最后使用一種面向?qū)ο蟮恼Z言來實現(xiàn)該對象和對象之間的連接. 2.2. 例子 例如,當(dāng)我們來到計算機教室上課時,上課和下課就是一種類型的事情. 班級和班級可以具有自己的屬性,學(xué)生,老師等面向過程程序,也可以有自己的方法,用中文講課,用英語講課等. 如何講授班級行為,而不是課堂上的每個事件. 返回目錄 3.1. 含義 面向服務(wù)是描述服務(wù)之間的松散耦合. 松耦合系統(tǒng)來自業(yè)務(wù),而面向?qū)ο蟮哪P途o密耦合. 面向服務(wù)的體系結(jié)構(gòu)并不是新事物,它是更傳統(tǒng)的面向?qū)ο竽P偷奶娲桨? 模型. 面向服務(wù)的設(shè)計的三個原則是無狀態(tài),單實例和清晰的服務(wù)接口. 明確的服務(wù)接口是強制性和必要的,但無狀態(tài)和單實例不是強制性的原則,盡管服務(wù)的狀態(tài)管理會增加服務(wù)的復(fù)雜性,而多實例也會增加服務(wù)的復(fù)雜性(需要增加同步性)并發(fā)處理等,并會導(dǎo)致訪問不確定),但這在許多情況下是不可避免的. 3.2. 例子 播放CD. 您可以將要播放的CD放入CD播放器中. CD播放器將為您播放此CD. CD播放器提供CD播放器服務(wù). 這樣做的好處是您可以使用不同的CD播放器來播放同一張CD. 他們可以提供相同的CD播放服務(wù),但是服務(wù)質(zhì)量不同. SOA的思想明顯不同于面向?qū)ο蟮木幊? 面向?qū)ο缶幊虖娏医ㄗh您將數(shù)據(jù)綁定到其操作. 因此,在面向?qū)ο蟮木幊田L(fēng)格中,每個CD都有自己的CD播放器,因此無法拆卸. 這聽起來很奇怪,但這就是我們構(gòu)建許多現(xiàn)有軟件系統(tǒng)的方式. 返回目錄 組件不是一個新概念. Java中的javaBean規(guī)范和EJB規(guī)范是典型的組件. 組件的特征在于它定義了一種通用的處理方法. 例如,JavaBean具有內(nèi)部視圖功能,因此可以通過工具實現(xiàn)JavaBean的可視化. EJB規(guī)范定義了企業(yè)服務(wù)中的某些功能,因此EJB容器可以將企業(yè)計算所需的功能添加到EJB規(guī)范兼容的代碼中,例如事務(wù),持久性和池化. 因此,組件比對象的進步在于通用規(guī)范的引入. 通用規(guī)范通常可以向組件添加新功能(如上所述),但也給組件增加了限制,例如,您需要實現(xiàn)一些EJB接口 COP比OOP更進一步. 通常,OOP將數(shù)據(jù)對象組織成實體. 該方法具有許多優(yōu)點. 但是,OOP有一個很大的局限性: 對象之間的相互依賴性. 消除此限制的一個好主意是組件. 組件和通用對象之間的主要區(qū)別在于可以替換組件. 將一般需求函數(shù)與不相關(guān)的類分開;同時,它可以使許多類共享一個行為. 行為更改后,只要可以修改行為,就無需修改許多類. AOP是一種獲得分散關(guān)注的編程方法,它將“關(guān)注點”封裝在“方面”中. 返回目錄 5.1. 面向?qū)ο笫歉叨瘸橄蟮氖挛? 5.2. 面向過程是自頂向下的編程 5.3. 面向?qū)ο蟊仨毷紫葮?gòu)建一個抽象模型,然后直接使用該模型. 5.4. 面向過程(OP)與面向?qū)ο螅∣O)之間的本質(zhì)區(qū)別在于分析方法的不同,最終導(dǎo)致了不同的編碼方法.
|
溫馨提示:喜歡本站的話,請收藏一下本站!