單一職責原則(Single Responsibility Principle):html
不要存在多於一個致使類變動的緣由。java
核心思想:系統中的每個對象都應該只有一個單獨的職責,而全部對象所關注的就是自身職責的完成。sql
單一職責,何爲單一職責,職責的劃分?數據庫
關於單一職責,個人理解是一類類似的事物,它們擁有惟一一個共同父集。好比數據庫的增刪改查,咱們能夠將其理解成一種職責,即對數據的基本操做。wordpress
職責的劃分,主要根據不一樣的角度劃分,好比,spa
一、從類組成,劃分爲屬性的操做,和行爲操做兩種。設計
二、從數據庫操做的不一樣做用,劃分爲數據庫的鏈接操做,和增刪改查基本操做。code
在開發項目時,開發人員設計接口的時候會有些問題,好比咱們設計用戶接口類,有時爲了方便原則,將其屬性操做以及行爲操做都封裝在用戶接口類中。htm
上面這個例子,將業務對象和業務邏輯放在一塊兒,使得接口有兩種職責,用戶類的年齡與身高,屬於業務對象,與之相應的方法主要負責用戶的屬性;而吃東西是業務邏輯,主要負責用戶的行爲。所以業務對象和業務邏輯這兩種緣由均可以引發用戶類的變化,發生多於一個致使類變動的緣由的狀況,違背了單一職責原則。對象
爲了符合單一職責原則,咱們將業務對象和業務邏輯這兩種緣由分散開來,便可解決。
在java中數據庫操做中,根據不一樣職責劃分類接口。
java.sql.Connection:Creates a Statement
object for sending SQL statements to the database.
java.sql.Statement:Executes the given SQL statement, which returns a single ResultSet
object.
單一職責原則,難點在於職責的劃分,在實際中,咱們儘可能根據項目需求的不一樣角度去劃分職責。
在某些時候不能遵照單一職責時,那就放心破壞吧,謹記教條是死的,生活是多變的。
好比:
注意:
參考:
一、單一職責原則