請問誰有物件導向的開閉里氏替換單一職能原則的示例呀

2021-03-03 21:44:18 字數 3016 閱讀 1081

1樓:匿名使用者

去下本【大話設計模式】吧,裡面有詳解和**示例,網上有pdf

2樓:匿名使用者

建議買本 設計模式之禪,第一部分六章書就是對六大設計原則詳細講述 並用偽**說明的

大話設計模式在模式上說得還算通俗,但在那些定理解析上 欠缺靈活 令人難以理解

3樓:大大泡泡大佛

我有 大話設計 和ood啟示錄 的總結 這兩個看完 就很好了 我發了 求給分啊

物件導向程式設計語言有哪些?

4樓:life布可

1、**alltalk

**alltalk被公認為歷史上第二個物件導向的程式設計語言和第一個真正的整合開發環境 (ide)。由alan kay,dan ingalls,ted kaehler,adele goldberg等於70年代初在xerox parc開發。

**alltalk對其它眾多的程式設計語言的產生起到了極大的推動作用,主要有:objective-c,actor, java 和ruby等。90年代的許多軟體開發思想得利於**alltalk,例如design patterns, extreme programming(xp)和refactoring等。

2、eiffel

eiffel語言是繼**alltalk-80之後的另一個"純"oopl。這種語言是由oop領域中著名的專家bertrand meyer等人20世紀80年代後期在ise公司(interactive software engineering inc.)開發的,它的主要特點是全面的靜態型別化、有大量的開發工具、支援多繼承。

3、c++

c++是c語言的繼承,它既可以進行c語言的過程化程式設計,又可以進行以抽象資料型別為特點的基於物件的程式設計,還可以進行以繼承和多型為特點的物件導向的程式設計。

c++擅長物件導向程式設計的同時,還可以進行基於過程的程式設計,因而c++就適應的問題規模而論,大小由之。

4、java

java是一門物件導向程式語言,不僅吸收了c++語言的各種優點,還摒棄了c++裡難以理解的多繼承、指標等概念,因此java語言具有功能強大和簡單易用兩個特徵。

java語言作為靜態物件導向程式語言的代表,極好地實現了物件導向理論,允許程式設計師以優雅的思維方式進行復雜的程式設計 。

java具有簡單性、物件導向、分散式、健壯性、安全性、平**立與可移植性、多執行緒、動態性等特點 。java可以編寫桌面應用程式、web應用程式、分散式系統和嵌入式系統應用程式等 。

擴充套件資料:

物件導向程式設計的原則:

1、單一職責原則:一個物件應該只包含單一的職責,並且該職責被完整地封裝在一個類中。

單一職責原則是實現高內聚、低耦合的要素。類的職責主要包括兩個方面:資料職責和行為職責,資料職責是通過其屬性來體現的,行為職責是通過其方法來體現。

如果職責過多將導致系統非常的脆弱,類被複用的可能性就越少,一個職責可能會影響其他職責。

2、開閉原則:一個軟體實體應當對擴放,對修改關閉。

任何軟體都需要面臨一個問題,當軟體系統需要面對新的需求時,我們要保證系統的設計框架是穩定的。為了滿足開閉原則,需要對系統進行抽象化設計,抽象化是開閉原則的關鍵。百分百的開閉原則很難達到,但是要儘量使系統設計符合開閉原則。

3、里氏代換原則:所有引用基類(父類)的地方必須透明地使用其子類的物件。

里氏代換原則是實現開閉原則的重要方式之一,由於使用基類物件的地方都可以使用子類物件,因此在程式中儘量使用基類型別來對物件進行定義,而在執行時再確定其子類型別,用子類物件代替父類物件。子類的所有方法必須在父類中宣告,或子類必須實現父類中宣告的所有方法。

4、依賴倒轉原則:高層模組不應該依賴低層模組,他們都應該依賴於抽象。抽象不應該依賴於細節,細節應該依賴於抽象。

依賴倒轉原則是物件導向設計的主要手段。在**中使用抽象類,而具體類放在配置檔案中。里氏代換原則是依賴倒轉原則的基礎。

如果系統行為發生變化,只需要擴充套件抽象層,並修改配置檔案,而無需修改原有系統的源**,滿足開閉原則的設計要求。

5、介面隔離原則:客戶端不應該依賴那些他不需要的介面。

首先需要滿足單一職責原則。將一組相關的操作定義在一個介面中,在滿足高內聚的前提下,介面中的方法越少越好。可以在進行系統設計時採用定**務的方式。

6、合成複用原則定義:儘量使用物件組合,而不是繼承來達到複用的目的。

通過繼承來實現複用很簡單,而且子類易於擴充套件。但其主要問題是會破壞系統的封裝性,繼承會將基類的實現細節暴露給子類。同時沒有足夠的靈活性,如果基類發生變化,子類的實現也不得不發生改變。

7、迪米特法則原:每一個軟體單位對其他的單位都只有最少的知識,而且侷限於那些與本單位密切相關的軟體單位。

在類的結構設計上,每一個類都應當儘量降低其成員變數和成員函式的訪問許可權。在類的設計上,只要有可能,一個型別應當設計成不變類。一個物件對其他物件的引用,應當降到最低。

5樓:匿名使用者

物件導向程式設計語言,有很多,如:visual baisic,visual c ,visual foxpro等。

6樓:tot_白鹿巷

不知你問的是純面嚮物件語言還是包含物件導向思想的語言

像c++、objective-c就是物件導向的,不過它們也有程序導向的因素在裡面,算混合型的吧。

如果你想問的是純物件導向的話,典型的就是java語言了,連main函式都是在類裡(可以簡單的認為物件就說的是類),沒有程序導向在裡頭。

除去java外,還有很多純粹的物件導向的語言,比如c#、**alltalk、eiffel、python這些。

不過現在純物件導向的語言發展不是很好,像**alltalk好像就不太行了、、、

7樓:匿名使用者

簡單的解釋:

物件導向的語言是和麵向結構的語言對應的。面向結構偏重的是程式的流程,而物件導向偏重的是一類事物的屬性和操作。java是物件導向的,c和vb都不是。而c++是。

8樓:麗人安

這個我也不知道,我不是專業人士,可以向專業人士諮詢一下了解一下具體情況

請問誰有關於骨氣與傲氣的,請問誰有關於骨氣與傲氣的資料?

簡單點說,骨氣是做人低調做事高調傲氣是做人高調做是低調 骨氣?傲氣?骨氣 做人要做到不需他人憐憫,不需要他人施捨.傲氣 自以為事,孤芳自賞,自作聰明.而看不起他人 這個中差別,相信你不會不知道吧?其實,不管怎麼樣,做人,就一定要有原則,有尊嚴.這是最基本的 但是,卻不等於要你自大.自負.所以,有骨氣...

請問誰有好看的舞步

hiphop舞 自由模式 hiphop 代表動作 非常好看 lv6 1848 2643 8783 9472 2437 9681 7267 lv7 3446 3442 6667 6437 1996 6366 6719 6887 4698 lv8 6483 7466 4918 6963 1383 716...

請問誰有這張高清原圖,請問誰有這張圖的高清無水印原圖?

下邊就是高清的原圖 pixiv作品id 55532145 畫師 蕃 茄 貓 畫師id 16041143 請問誰有這張圖的高清無水印原圖?高清原圖 出自 1728 1080 畫素 av69702025 短片 手書 嗶哩嗶哩 這是原圖高清的!誰有這張高清原圖呀 pixiv id 72102944 畫師 ...