導航:首頁 > 編程語言 > java開閉原則實例

java開閉原則實例

發布時間:2021-12-05 02:19:24

java六大設計原則

1、單一職責原則

不要存在多於一個導致類變更的原因,也就是說每個類應該實現單一的職責,如若不然,就應該把類拆分。

2、里氏替換原則(Liskov Substitution Principle)

里氏代換原則(Liskov Substitution Principle LSP)面向對象設計的基本原則之一。
里氏代換原則中說,任何基類可以出現的地方,子類一定可以出現。
LSP是繼承復用的基石,只有當衍生類可以替換掉基類,軟體單位的功能不受到影響時,基類才能真正被復用,而衍生類也能夠在基類的基礎上增加新的行為。里氏代換原則是對「開-閉」原則的補充。實現「開-閉」原則的關鍵步驟就是抽象化。而基類與子類的繼承關系就是抽象化的具體實現,所以里氏代換原則是對實現抽象化的具體步驟的規范。——
From Bai 網路

歷史替換原則中,子類對父類的方法盡量不要重寫和重載。因為父類代表了定義好的結構,通過這個規范的介面與外界交互,子類不應該隨便破壞它。

3、依賴倒轉原則(Dependence Inversion Principle)

這個是開閉原則的基礎,具體內容:面向介面編程,依賴於抽象而不依賴於具體。寫代碼時用到具體類時,不與具體類交互,而與具體類的上層介面交互。

4、介面隔離原則(Interface Segregation Principle)

這個原則的意思是:每個介面中不存在子類用不到卻必須實現的方法,如果不然,就要將介面拆分。使用多個隔離的介面,比使用單個介面(多個介面方法集合到一個的介面)要好。

5、迪米特法則(最少知道原則)(Demeter Principle)

就是說:一個類對自己依賴的類知道的越少越好。也就是說無論被依賴的類多麼復雜,都應該將邏輯封裝在方法的內部,通過public方法提供給外部。這樣當被依賴的類變化時,才能最小的影響該類。

最少知道原則的另一個表達方式是:只與直接的朋友通信。類之間只要有耦合關系,就叫朋友關系。耦合分為依賴、關聯、聚合、組合等。我們稱出現為成員變數、方法參數、方法返回值中的類為直接朋友。局部變數、臨時變數則不是直接的朋友。我們要求陌生的類不要作為局部變數出現在類中。

6、合成復用原則(Composite Reuse Principle)

原則是盡量首先使用合成/聚合的方式,而不是使用繼承。

Ⅱ Java中分別用抽象類和介面實現開閉原理的實驗報告

開閉原則
Java web中開閉原則(OCP)是指軟體實體應當對擴展開放,對修改版關閉。對擴展開放意味著模塊的行為是可擴展的,權對於修改的封閉則是對模塊的行為進行擴展時,不必改動模塊的源代碼或者二進制代碼。
遵循開閉原則
開閉原則是一切設計原則的基礎,它是判斷面向對象設計是否正確的最基本的原理之一。它在軟體可用性上,非常靈活。它可以通過不斷的增加新的設計模塊滿足不斷變化的新需求!並且,由於開閉原則規定對軟體原來的模塊不要修改,因此不用擔心軟體的穩定性。如果一個軟體項目某些功能已經不符合要求了,我們可以重新開發,並且只需要將現有的功能替換掉。
實現開閉原則
實現開閉原則的核心之處在於「抽象」。由於軟體項目中,需求更新頻繁,這要求我們系統設計師在設計時,要區分哪些是變化的,哪些是不變。對於不變部分,我們可以把這些不變部分加以抽象成不變的介面,對於變化的部分,我們可以進行評估和分類,每一個可變的因素都單獨進行封裝。
至於開閉原則的具體抽象實現方面,可以通過Java的抽象類和介面去展現。對於軟體系統的功能擴展,我們可以通過繼承、重載或者委託等手段實現。

Ⅲ JAVA程序設計(開封原則) 求解(代碼)

開閉原則結構圖


代碼:

public interface pay{

void wePay();

void aliPay();

void voucherPay();

void bankcardPay();

}


public class Patron implements pay{

private String name;

public void wePay(){//微信支付的邏輯}

public void aliPay(){//支付寶支付的邏輯}

public void voucherPay(){//代金券支付的邏輯}

public void bankcardPay(){//銀行卡支付的邏輯}

}

Ⅳ java中的開閉原則講的是什麼意思

簡而言之,對修改封閉,對具體的實現開放。例如Java里的介面設計。樓主還是去看看設計模式方面的書吧,Java程序員最喜歡拿設計模式來說事~

Ⅳ 求助一個開閉原則的JAVA小代碼

public class TestFruit {

public static void main(String[] args) {

Fruit fruit;
fruit = Gardener.NewFruit("apple");
fruit.grow();
fruit.Flowering();
fruit.Fruiting();

fruit = Gardener.NewFruit("pear");
fruit.grow();
fruit.Flowering();
fruit.Fruiting();

}
}

interface Fruit {
void grow();

void Flowering();

void Fruiting();
}

class Apple implements Fruit {

public void Flowering() {
System.out.println("開花的是蘋果");
}

public void Fruiting() {
System.out.println("結果的是蘋果");
}

public void grow() {
System.out.println("種植的是蘋果");
}

}

class Pear implements Fruit {

public void Flowering() {
System.out.println("開花的是梨");
}

public void Fruiting() {
System.out.println("結果的是梨");
}

public void grow() {
System.out.println("種植的是梨");
}

}

final class Gardener {

public static Fruit NewFruit(String fruitname) {
if (fruitname.equals("apple")) {
return new Apple();
} else if (fruitname.equals("pear")) {
return new Pear();
}
return null;
}

}

不知這樣寫是否正確。個人認為這應該是一個工廠模式吧。
所有類的實現都由工廠類(也就是園丁類)完成。
寫的只是一個簡單工廠模式。

通過抽象類及介面,規定了具體類的特徵作為抽象層,相對穩定,不需更改,從而滿足「對修改關閉」;而從抽象類導出的具體類可以改變系統的行為,從而滿足「對擴展開放」。開閉原則在問題描述時就已經實現了。當然這只是對於客戶端(也就是測試類)來說,測試類只需要提供要創建對象的描述,系統自動創建相應的對象。而對於工廠類並沒有滿足開閉原則。

Ⅵ JAVA的幾個重要特點

一.簡單性:

Java是純面向對象語言,語法簡單明了,易於掌握。

Java使用介面取代了多重繼承,並且取消了指針,因為多重繼承和指針會使程序變得復雜。

Java還會自動地收集內存垃圾,使得內存管理變得更為簡單。

Java還提供了豐富的類庫、API文檔以及第三方開發包,還有大量Java的開源項目。

二.面向對象性:

面向對象性事Java語言的基礎。

java語言提倡「萬物皆對象」,語法中不能在類外面定義單獨的數據和函數。

Java語言最外部的數據類型是對象,所有的元素都要通過類和對象來訪問。

三.分布性:

Java的分布性包括:1.操作分布。2.數據分布

⑴操作分布:即在多個不同的主機上不知相關操作。

⑵數據分布:將數據分別存放在不同的主機上,這些主機是網路中的不同成員。

四.可移植性:

Java程序具有與體系結構無關的特性。

Java的類庫也提供了針對不同平台的介面,所有這些類庫也可以被移植。

五.安全性

Java語言刪除了類C語言的指針和內存釋放等語法,有效地避免了用戶對內存的非法操作

Java程序代碼要經過代碼程序校驗、指針校驗等很多測試步驟才能夠運行。所以未經允許的Java程序不能出現損害系統平台的行為。

Java可以編寫出防病毒和防修改系統。

六.健壯性

Java會檢查程序在編碼和運行時的錯誤,並消除錯誤。

七.多線程性。

Java應用程序可以在同一時間並行執行多項任務。而且相應的同步機制可以保證不同線程能夠正確地共享數據。

八.高性能性

Java編譯後的位元組碼是在解釋器中運行的,所以它的速度較多數互動式運用程序提高了很多。

九.動態性

Java可以動態調整庫中方法和增加變數,並且客戶端不需要任何更改。在Java中進行動態調整是非常簡單和直接。

希望會給大家帶來幫助!

Ⅶ Java,面對修改關閉,面對擴展開放

開閉原則
Java web中開閉原則(OCP)是指軟體實體應當對擴展開放,對修改關閉。對擴展開放意味著模塊的行為是可擴展的,對於修改的封閉則是對模塊的行為進行擴展時,不必改動模塊的源代碼或者二進制代碼。
遵循開閉原則
開閉原則是一切設計原則的基礎,它是判斷面向對象設計是否正確的最基本的原理之一。它在軟體可用性上,非常靈活。它可以通過不斷的增加新的設計模塊滿足不斷變化的新需求!並且,由於開閉原則規定對軟體原來的模塊不要修改,因此不用擔心軟體的穩定性。如果一個軟體項目某些功能已經不符合要求了,我們可以重新開發,並且只需要將現有的功能替換掉。
實現開閉原則
實現開閉原則的核心之處在於逗抽象地。由於軟體項目中,需求更新頻繁,這要求我們系統設計師在設計時,要區分哪些是變化的,哪些是不變。對於不變部分,我們可以把這些不變部分加以抽象成不變的介面,對於變化的部分,我們可以進行評估和分類,每一個可變的因素都單獨進行封裝。
至於開閉原則的具體抽象實現方面,可以通過Java的抽象類和介面去展現。對於軟體系統的功能擴展,我們可以通過繼承、重載或者委託等手段實現。

Ⅷ Java中的開閉原則是什麼意思

開閉原則即封閉對原來代碼的修改,開放對原來代碼的擴展(如類的繼承,介面的實現等)
開閉原則是一種設計思想,並不局限於java語言
大概意思就是這些,但是要真正掌握運用開閉原則,還是要多多實踐,多多體會

Ⅸ 什麼是開閉原則,java開閉原則

對擴張開放,對修改關閉 就是一個類中可以注入其他類對象,但是不能修改,因為修改了的話子類也變了 設計模式最基礎的知識

Ⅹ 什麼是開閉原則

開閉原則
即封閉對原來代碼的修改,開放對原來代碼的擴展(如類的繼承,介面的實現等)
開閉原則是一種設計思想,並不局限於java語言
大概意思就是這些,但是要真正掌握運用開閉原則,還是要多多實踐,多多體會

閱讀全文

與java開閉原則實例相關的資料

熱點內容
手機釘釘下載下來的文件在哪裡找 瀏覽:545
男主是女主的三叔 瀏覽:514
經濟師萬題庫大數據 瀏覽:996
獲取appsetting 瀏覽:920
蘋果7plus哪個顏色保值 瀏覽:869
蜜桃風月 瀏覽:533
1個電影多少流量 瀏覽:971
日本瑜伽電影 瀏覽:463
有一部電影講一個男的做鴨 瀏覽:247
看視頻的網址推薦 懂的 瀏覽:411
南昌大數據培訓 瀏覽:603
每天自動1的代碼 瀏覽:375
因為存在系統錯誤代碼193 瀏覽:56
ip網路適配器是什麼 瀏覽:61
印尼愛情電影 瀏覽:794
求一個網站帶小說的那種 瀏覽:56
pdf文件如何不能復制 瀏覽:612
都市連媽媽都收的小說 瀏覽:300
java第一步pdf 瀏覽:984
javahourofday 瀏覽:158

友情鏈接