面向對象基本思想,面向對象思想設計原則及常見設計模式

 2023-11-30 阅读 27 评论 0

摘要:面向對象思想設計原則 ?在實際的開發中,我們要想更深入的了解面向對象思想,就必須熟悉前人總結過的面向對象的思想的設計原則 ?單一職責原則 ?開閉原則 ?里氏替換原則 ?依賴注入原則 ?接口分離原則 ?迪米特原則 l單一職責原則 ?其實就是開發人員經常說的”高內聚
面向對象思想設計原則
?在實際的開發中,我們要想更深入的了解面向對象思想,就必須熟悉前人總結過的面向對象的思想的設計原則
?單一職責原則
?開閉原則
?里氏替換原則
?依賴注入原則
?接口分離原則
?迪米特原則


l單一職責原則
?其實就是開發人員經常說的高內聚,低耦合
也就是說,每個類應該只有一個職責,對外只能提供一種功能,而引起類變化的原因應該只有一個。在設計模式中,所有的設計模式都遵循這一原則

面向對象基本思想。


l開閉原則
?核心思想是:一個對象對擴展開放,對修改關閉。
?其實開閉原則的意思就是:對類的改動是通過增加代碼進行的,而不是修改現有代碼。
?也就是說軟件開發人員一旦寫出了可以運行的代碼,就不應該去改動它,而是要保證它能一直運行下去,如何能夠做到這一點呢?這就需要借助于抽象和多態,即把可能變化的內容抽象出來,從而使抽象的部分是相對穩定的,而具體的實現則是可以改變和擴展的。


什么是面向對象設計思想,

l里氏替換原則
?核心思想:在任何父類出現的地方都可以用它的子類來替代。
l接口分離原則
?核心思想:不應該強迫程序依賴它們不需要使用的方法。
?其實就是說:一個接口不需要提供太多的行為,一個接口應該只提供一種對外的功能,不應該把所有的操作都封裝到一個接口中。
?其實就是說:同一個繼承體系中的對象應該有共同的行為特征。


l依賴注入原則
?核心思想:要依賴于抽象,不要依賴于具體實現。


?
其實就是說:在應用程序中,所有的類如果使用或依賴于其他的類,則應該依賴這些其他類的抽象類,而不是這些其他類的具體類。為了實現這一原則,就要求我們在編程的時候針對抽象類或者接口編程,而不是針對具體實現編程。


l接口分離原則
?核心思想:不應該強迫程序依賴它們不需要使用的方法。
?其實就是說:一個接口不需要提供太多的行為,一個接口應該只提供一種對外的功能,不應該把所有的操作都封裝到一個接口中。


l迪米特原則
?核心思想:一個對象應當對其他對象盡可能少的了解
?其實就是說:降低各個對象之間的耦合,提高系統的可維護性。在模塊之間應該只通過接口編程,而不理會模塊的內部工作原理,它可以使各個模塊耦合度降到最低,促進軟件的復用


設計模式概述
?設計模式(Design pattern)是一套被反復使用、多數人知曉的、經過分類編目的、代碼設計經驗的總結。使用設計模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。
?設計模式不是一種方法和技術,而是一種思想
?設計模式和具體的語言無關,學習設計模式就是要建立面向對象的思想,盡可能的面向接口編程,低耦合,高內聚,是設計的程序可復用
?學習設計模式能夠促進對面向對象思想的理解,反之亦然。它們相輔相成

l設計模式的幾個要素
?名字 必須有一個簡單,有意義的名字
?問題 描述在何時使用模式
?解決方案 描述設計的組成部分以及如何解決問題
?效果 描述模式的效果以及優缺點
l設計模式的分類
?創建型模式 對象的創建
?結構型模式 對象的組成(結構)
?行為型模式 對象的行為


l簡單工廠模式概述
?又叫靜態工廠方法模式,它定義一個具體的工廠類負責創建一些類的實例
l優點
?客戶端不需要在負責對象的創建,從而明確了各個類的職責
l缺點
?這個靜態工廠類負責所有對象的創建,如果有新的對象增加,或者某些對象的創建方式不同,就需要不斷的修改工廠類,不利于后期的維護


l工廠方法模式概述
?工廠方法模式中抽象工廠類負責定義創建對象的接口,具體對象的創建工作由繼承抽象工廠的具體類實現。
l優點
?客戶端不需要在負責對象的創建,從而明確了各個類的職責,如果有新的對象增加,只需要增加一個具體的類和具體的工廠類即可,不影響已有的代碼,后期維護容易,增強了系統的擴展性
l缺點
?需要額外的編寫代碼,增加了工作量


l單例設計模式概述
?單例模式就是要確保類在內存中只有一個對象,該實例必須自動創建,并且對外提供。
l優點
?在系統內存中只存在一個對象,因此可以節約系統資源,對于一些需要頻繁創建和銷毀的對象單例模式無疑可以提高系統的性能。
l缺點
?沒有抽象層,因此擴展很難。
?職責過重,在一定程序上違背了單一職責


l模版設計模式概述
?模版方法模式就是定義一個算法的骨架,而將具體的算法延遲到子類中來實現
l優點
?使用模版方法模式,在定義算法骨架的同時,可以很靈活的實現具體的算法,滿足用戶靈活多變的需求
l缺點

?
如果算法骨架有修改的話,則需要修改抽象類



l裝飾設計模式概述
?裝飾模式就是使用被裝飾類的一個子類的實例,在客戶端將這個子類的實例交給裝飾類。是繼承的替代方案
l優點
?使用裝飾模式,可以提供比繼承更靈活的擴展對象的功能,它可以動態的添加對象的功能,并且可以隨意的組合這些功能
l缺點
?正因為可以隨意組合,所以就可能出現一些不合理的邏輯


l適配器設計模式概述
?將一個類的接口轉換成另外一個客戶希望的接口。從而使原來不能直接調用的接口變的可以調用。
l優點
?讓本來不適合使用的接口變得適合使用
l缺點
?一次只能適配一個類,使用有一定的局限性


以后還有在補充, 先記錄到這里。













版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/188177.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息