1. 程式人生 > >Java面向物件的五大原則

Java面向物件的五大原則

面向物件五大原則:
(1)單一職責原則(Single-Resposibility Principle)
•一個類應該僅有一個引起它變化的原因
職員類例子: 比如在職員類裡,將工程師、銷售人員、銷售經理這些情況都放在職員類裡考慮,其結果將會非常混亂,在這個假設下,職員類裡的每個方法都要ifelse判斷是哪種情況,從類結構上來說將會十分臃腫,並且上述三種的職員型別,不論哪一種發生需求變化,都會改變職員類!這個是大家所不願意看到的!

(2)開放封閉原則(Open-Closed principle)
•對擴充套件是開放的,對更改是封閉的!
變化來臨時,如果不必改動軟體實體裁的原始碼,就能擴充它的行為,那麼這個軟體實體設計就是滿足開放封閉原則的。如果說我們預測到某種變化,或者某種變化發生了,我們應當建立抽象類來隔離以後發生的同類變化。

(3)里氏替換原則(Liskov-Substituion Principle)
•子類可以替換父類並且出現在父類能夠出現的任何地方,貫徹GOF倡導的面向介面程式設計
在這個原則中父類應儘可能使用介面或者抽象類來實現!
子類通過實現了父類介面,能夠替父類的使用地方!
通過這個原則,我們客戶端在使用父類介面的時候,通過子類實現!
意思就是說我們依賴父類介面,在客戶端宣告一個父類介面,通過其子類來實現
這個時候就要求子類必須能夠替換父類所出現的任何地方,這樣做的好處就是,在根據新要求擴充套件父類介面的新子類的時候而不影響當前客戶端的使用!

(4)依賴倒置原則(Dependecy-Inversion Principle)
•傳統的結構化程式設計中,最上層的模組通常都要依賴下面的子模組來實現,也稱為高層依賴低層!
所以DIP原則就是要逆轉這種依賴關係,讓高層模組不要依賴低層模組,所以稱之為依賴倒置原則!

(5)ISP 介面隔離原則(Interface-Segregation Principle)
•使用多個專門的介面比使用單個介面要好的多!
這個我有體會,在我實際程式設計中,為了減少介面的定義,將許多類似的方法都放在一個介面中,最後發現,維護和實現介面的時候花了太多精力,而介面所定義的操作相當於對客戶端的一種承諾,這種承諾當然是越少越好,越精練越好,過多的承諾帶來的就是你的大量精力和時間去維護!

相關推薦

java面向物件原則

 單一職責原則:一個類只做它該做的事情。(單一職責原則想表達的就是"高內聚",寫程式碼最終極的原則只有六個字"高內聚、低耦合",就如同葵花寶典或辟邪劍譜的中心思想就八個字"欲練此功必先自宮",所謂的高內聚就是一個程式碼模組只完成一項功能,在面向物件中,如果只讓一個類完成它該做的事,而不涉及

java面向物件——設計原則

1. 開閉原則 (open close principle) 對擴充套件開放,對修改關閉。在程式需要進行擴充套件的時候,不能去修改原有的程式碼,即實現一個熱拔插效果。 為了使程式的擴充套件性更好,易

java面向物件六大原則

面向物件特點:         1:將複雜的事情簡單化。         2:面向物件將以前的過程中的執行者,變成了指揮者。 &

Java面向物件設計原則

1. 面向抽象原則 1.1 抽象類 特點:         1.抽象類中的abstract方法可有可無,也可以有非abstract方法         2.抽象類不能用new建立物件         3.抽象類的非抽象子類必須重寫父類的abstract方法  

java面向物件的三大特徵,五大基本原則

三大特性:封裝,繼承,多型。 1)封裝       將物件的屬性和實現細節隱藏起來,只提供公共的訪問方式。       好處:a。將外界的變化隔離開,使程式具備獨立,安全和穩定性。                  b。便於設計者使用,提高了程式碼的複用性       方式

Java面向物件五大原則

面向物件五大原則: (1)單一職責原則(Single-Resposibility Principle) •一個類應該僅有一個引起它變化的原因 職員類例子: 比如在職員類裡,將工程師、銷售人員、銷售經理這些情況都放在職員類裡考慮,其結果將會非常混亂,在這個假

java程式設計師應當知道的10個面向物件設計原則

面向物件設計原則是OOPS程式設計的核心, 但我見過的大多數Java程式設計師熱心於像Singleton (單例) 、 Decorator(裝飾器)、Observer(觀察者) 等設計模式,而沒有把足夠多的注意力放在學習面向物件的分析和設計上面。學習面向物件程式設計像“抽象”

面向物件五大設計原則以及常見設計模式總結

儘管本人已經從事OOP程式設計好幾年,但對於OOP程式設計的很多精髓依舊瞭解不深。加之最近專案不緊,特抽出時間總結一些面向物件設計原則以及設計模式的相關內容,加深自己的理解同時也希望可以幫到其他人。 note:程式設計是一門技術更是一門藝術,藝術來源於生活又高於生活。下面介紹的很多東西很多都

面向物件五大基本原則

以前一直認為程式中的類有使用到封裝繼承多型就是面向物件設計,其實不然 封裝,繼承,多型只是面向物件的三大特性,但是在設計程式的時候並不是說類的結構使用到了(或是體現出了)這三個特性就是面向物件, 其實真正的面向物件設計是要符合下面的五大原則, 面向物件的五大基本原則 單

Java面向物件的五個基本原則

參考部落格:Ask馬小向的專欄,網址:http://blog.csdn.net/happymatilian/article/details/48440073 1  單一職責原則(Single-Responsibility Principle):就一個類而言,應該僅有一個引

Java程式設計師應該瞭解的10個面向物件設計原則

摘要:Java程式設計最基本的原則就是要追求高內聚和低耦合的解決方案和程式碼模組設計。檢視Apache和Sun的開放原始碼能幫助你發現其他Java設計原則在這些程式碼中的實際運用。 面向物件設計原則是OOPS(Object-Oriented Programming Sys

java程式猿應該瞭解的10個面向物件設計原則(每次看都很有感悟,特意拿來和大家共享)

Java程式設計最基本的原則就是要追求高內聚和低耦合的解決方案和程式碼模組設計。檢視Apache和Sun的開放原始碼能幫助你發現其他Java設計原則在這些程式碼中的實際運用。 面向物件設計原則是OOPS(Object-Oriented Programming System,

java面向物件程式設計的六大基本原則

1.開閉原則(Open Close Principle) 定義:一個軟體實體如類、模組和函式應該對擴充套件開放,對修改關閉。 開放-封閉原則的意思就是說,你設計的時候,時刻要考慮,儘量讓這個類是足夠好,寫好了就不要去修改了,如果新需求來,我們增加一些類就完事了,原來的

java--面向物件七大設計原則

1、 每一種設計思想的精準含義,具體如下: 先從整體認識這七種設計思想。 一、開閉原則: 這一條放在第一位來理解,它的含義是對擴充套件開放,對修改關閉。解釋一下就是,我們寫完的程式碼,不能因為需求變化就修改。我們可以通過新增程式碼的方式來解決變化的需求。 當然,這是一種理想的狀態,在現實中,我們要儘量的縮小

Java程式設計師應瞭解的10個面向物件設計原則

面向物件設計原則是 OOPS(Object-Oriented Programming System,面向物件的程式設計系統)程式設計的核心,但大多數 Java 程式設計師追逐像 Singleton、Decorator、Observer 這樣的設計模式,而不重

Java面向物件16種設計原則(總結版)

Java面向物件16種設計原則 一   類的設計原則 1 依賴倒置原則-Dependency Inversion Principle (DIP) 2 里氏替換原則-Liskov Substitution Principle (LSP) 3 介面分隔原則-Int

Java設計模式之——面向物件六大原則

面向物件六大原則: 設計模式六大原則(1):單一職責原則 設計模式六大原則(2):開閉原則 設計模式六大原則(3):里氏替換原則 設計模式六大原則(4):依賴倒置原則 設計模式六大原則(5):介面隔離原則 設計模式六大原則(6):迪米特原則 設計模式六大

嘮嘮面試常問的,Java 面向物件設計的六大原則

這篇文章主要講的是面向物件設計中,我們應該遵循的六大原則。只有掌握了這些原則,我們才能更好的理解設計模式。 我們接下來要介紹以下6

面向物件設計原則實踐:之五.迪米特原則,介面隔離原則

六、迪米特(第三者互動)原則 1. 定義 每一個軟體單位對其他的單位都只有最少的知識,而且侷限於那些與本單位密切相關的軟體單位。   2. 分析 1) 迪米特法則就是指一個軟體實體應當儘可能少的與其他實體發生相互作用。 這樣,當一個模組修改時,就會盡量少的影響其他的

面向物件設計原則實踐:之四.里氏代換原則

五、里氏代換原則(LSP--Liskov Substitution Principle) 1. 定義 a). 如果對每一個型別為S的物件o1,都有型別為T的物件o2, 使得以T定義的所有程式P在所有的物件o1都代換成o2時,程式P的行為沒有變化, 那麼型別S是型別T的子型別。 b