1. 程式人生 > >Android 面向物件六大設計原則之單一職責原則

Android 面向物件六大設計原則之單一職責原則

1.單一職責原則簡介

單一職責原則(SRP:Single responsibility principle)又稱單一功能原則,面向物件六個基本原則(SOLID)之一。它規定一個類應該只有一個發生變化的原因

單一職責原則是最簡單的面對物件設計原則,它用於控制類的粒度大小。在軟體系統中,一個類(大到模組,小到方法)承擔的職責越多,它被複用的可能性就越小,而且一個類承擔的職責過多,就相當於將這些職責耦合在一起,當其中一個職責變化時,可能會影響其他職責的運作,因此要將這些職責進行分離,將不同的職責封裝在不同的類中,即將不同的變化原因封裝在不同的類中,如果多個職責總是同時發生改變則可將它們封裝在同一類中。

2.程式碼舉例

需求描述:描述動物喜愛的食物。

2.1.普通

Java Bean


呼叫類


結果


那麼問題來了,如果現在新新增幾個動物,比如 狗和貓。它們是不吃草的。所以顯然要修改Java Bean類

2.2.修改

吃草 Java Bean


吃骨頭 Java Bean


吃老鼠 Java Bean


呼叫類


結果


2.3.當然也可以使用一個動物類,而把吃方法的引數新增一個即可

Java Bean


呼叫類


結果


附:

高內聚 低耦合

1.基本概念

內聚性:又稱塊內聯絡。指模組的功能強度的度量,即一個模組內部各個元素彼此結合的緊密程度的度量。若一個模組內各元素(語名之間、程式段之間)聯絡的越緊密,則它的內聚性就越高。 

耦合性:又稱塊間聯絡。指軟體系統結構中各模組間相互聯絡緊密程度的一種度量。模組之間聯絡越緊密,其耦合性就越強,模組的獨立性則越差。模組間耦合高低取決於模組間介面的複雜性、呼叫的方式及傳遞的資訊 。

注:對於低耦合,粗淺的理解是:一個完整的系統,模組與模組之間,儘可能的使其獨立存在。也就是說,讓每個模組,儘可能的獨立完成某個特定的子功能。模組與模組之間的介面,儘量的少而簡單。如果某兩個模組間的關係比較複雜的話,最好首先考慮進一步的模組劃分。這樣有利於修改和組合。 

2.高內聚低耦合系統的好處 

高內聚,低耦合的好處體現在系統持續發展的過程中,高內聚,低耦合的系統具有更好的重用性,維護性,擴充套件性,可以更高效的完成系統的維護開發,持續的支援業務的發展,而不會成為業務發展的障礙。 

3.關於低耦合

儘量使不同模組間少關聯,即一個模組明確完成一個功能。但是一個模組內部又有許多子系統,子系統中的類之間不關聯是不可能的,一個模組下的子系統要少用繼承多用組合(使用組合時,就會使子系統的不同類之間產生關聯)——總結一句話就是:模組之間要實現低耦合,模組下的類之間要多用組合少用繼承。

相關推薦

Android 面向物件六大設計原則單一職責原則

1.單一職責原則簡介單一職責原則(SRP:Single responsibility principle)又稱單一功能原則,面向物件六個基本原則(SOLID)之一。它規定一個類應該只有一個發生變化的原因

面向物件的五大設計原則單一職責原則

我們都知道,面向物件是一種高度抽象的思維,我們在面向物件設計中,類是最基本的單位,我們的各種設計都是圍繞著類來進行的,可以這麼說,類與類之間的關係,構成了設計模式的大部分內容,我麼可能認為,類是屬性+函式構成的,事實上在底層儲存上確實也是這麼來搞的,但是這些僅僅只是確定一個獨立的類,而類與類之間

學習設計模式 - 六大基本原則單一職責原則

enc more ref 組合 代碼 aso HERE ali 不可   設計模式總共有六大基本原則,統稱為SOLID (穩定)原則,分別是S-單一職責原則(Single Responsibility Principle), O-開閉原則(Open closed Pri

嘻哈說:設計模式單一職責原則

1、定義 首先呢,我們來看一下單一職責原則的定義。 就一個類而言,應該只有一個引起它變化的原因 這個說法不是很好懂,有一些抽象,不過呢,我們依舊可以嘗試著理解一下。 就一個類而言,只有一個引起它變化的原因,也就是說,除此之外,不能有其它引起變化的原因。 這樣就

大話設計模式單一職責原則

引用的3篇部落格,都很詳細的例子,這篇部落格是通過對參考內容的總結,便於自己理解,例子可以看參考的3篇部落格,這裡不寫 什麼是單一職責原則 單一職責原則:就一個類而言,應該僅有一個引起它變化的原因  簡單記憶:術業有專攻,我是專門搬磚的!!           

6大設計原則單一職責原則

方法 接口設計 sta 其他 一個 src 沒有 不同的 可維護性 單一職責原則 如果有一個用戶管理類,類圖如下 我想,任誰也能看的出這個接口設計的有問題,用戶的屬性和用戶的行為沒有分開,應該把用戶的信息抽取成一個業務對象,把用戶的行為抽取成一個業務對象,按照這個思

設計原則單一職責原則(SRP)

簡介 單一職責原則是最重要的設計原則,也是最抽象的設計原則。小到函式,大到平臺的設計,都可以使用單一職責原則來指導。也正因為它的抽

深入淺出系列第一篇(設計模式單一職責原則)—— 從純小白到Java開發的坎坷經歷

各位看官大大們,晚上好。好久不見,我想死你們了...     先說說寫這個系列文章的背景: 工作了這麼久了,每天都忙著寫業務,好久沒有好好靜下心來好好總結總結了。正好這段時間公司組織設計模式的分享分,所以我才有機會在這裡和大家嘮嘮嗑。 也許因為自己是小白自學的吧,所以磕磕絆絆走了好多彎路。

面向物件六大設計原則

最新在閱讀《Android原始碼設計模式解析與實戰》一書,我覺得寫的很清晰,每一個知識點都有示例,通過示例更加容易理解。書中的知識點有些都接觸過,有的沒有接觸過,總之,通過閱讀這本書來梳理一下知識點,可能有些東西在專案中一直在使用,然並不能籠統,清

面向對象五大原則_1.單一職責原則&2.裏氏替換原則

解決 一次 cti prot 輸入 名稱 enter wid col 單一職責原則:Single Responsibility Principle (SRP) 一個類。僅僅有一個引起它變化的原因。應該僅僅有一個職責。每個職責都是變化的一個軸線。假設一個類有一個以

《大話設計模式》——單一職責原則

有一個 導致 完成 如果能 原因 如果 分離 破壞 一個 單一職責原則(SRP):就一個類而言,應該僅有一個能引起它變化的原因。 如果一個類承擔的職責過多,就等於把這些職責耦合在一起,一個職責的變化可能會削弱或抑制這個類完成其他職責的能力。這種耦合會導致脆弱的設計,當變化發

七大設計原則之一單一職責原則

  單一職責:一個類應該有且只有一個變化的原因。通俗的說,即一個類只負責一項職責。   單一職責原則在實際使用中即容易也非常難。我們通常賦予一個類過多相關功能,使這個類非常累。職責過多也引起很多問題。過多的職責,使類本身混亂。 參考:1.https://www.c

設計模式:單一職責原則、開放-封閉原則以及依賴倒置原則

在設計程式碼中,我們有許多可以依照的設計模式,讓我把整個專案的邏輯結構變得清晰易於維護。當然,在設計模式中我們不只有各種模式,還有許多設計的原則,雖然他們不是程式碼架構的模板,但是這些原則卻時刻提醒我們提高程式碼質量和防止未來麻煩。這次我就將單一職責原則、開放-封閉原則以及依賴倒轉原則進行解釋。

設計模式單一職責

想要精通設計模式,必須要先搞清楚設計模式的六大原則。 在開始設計模式之前,先來談談設計模式的六大設計原則,第一個便是單一職責原則(Single Responsibility Principle)了。 單一職責原則定義 There should never

設計模式原則1----單一職責原則

個人部落格:開啟連結 1、官方定義 單一職責原則,英文縮寫SRP,全稱Single Responsibility Principle。 原始定義:There should never be more than one reason for a clas

設計模式的七大原則(1) --單一職責原則

前言 最近工作中備受打擊,之前設計的很多程式都被老大否決,需要重構,讓我好好看看設計模式。之前對這一塊內容的確不怎麼重視,感覺枯燥無聊又派不上用場。後來沉下心來研究了一番... 我靠,原來如此,之前寫程式碼的時候怎麼這麼傻逼,很多問題其實在一開始設計的時候就能避免。之前寫的都是些什麼鬼。 我們踩過的坑,歷代前

敏捷開發原則-SRP(單一職責原則)

SRP(Single Responsibility Principle):   定義:就一個類而言,應該僅有一個引起它變化的原因。(類,介面,方法等,都應該使用該原則)   如果一個類承擔了過多的職責,那麼引起該類變化的原因也會隨之變多。 例如:   一個圖形類中包含了draw() 繪

面向物件六大原則單一

單一職責原則-SRP(Single Responsibility Principle) 通俗的說,即一個類只負責一項職責 如:類T負責兩個不同的職責:職責P1,職責P2。當由於職責P1需求發生改變而需要修改類T時有可能會導致原本執行正常的職責P2功能發生故障。 如:對資料庫的增刪查改,對資料

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

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

設計模式六大設計原則《一》魔性的單一職責原則

定義:單一職責原則,英文全稱Single Responsbility Property。怎樣的類設計才稱的上符合單一職責原則呢?一句話:應該有且僅有一個原因引起類的變更(There should never be more than one reason for a class to chang