設計模式七大原則(一) 單一職責原則(SRP)

2021-10-04 00:23:56 字數 1601 閱讀 4814

 就乙個類而言,應該僅有乙個引起它變化的原因(職責)。 職責就是物件能夠承擔的責任,並以某種行為方式來執行

。可以將資料庫的增刪改查理解成職責,即對資料的基本

操作。 單一職責原則對類來說,即乙個類應該只負責一項職責。 如類a負責兩個不同職責:職責1,職責2,當職責1需求變

更而改變a時,可能造成職責2執行錯誤,所以需要將類a

的粒度分解為a1,a2。 主要根據不同的角度劃分職責,比如,1、從類的組成,劃分為屬性操作和行為操作兩種。

2、從資料庫操作的不同作用,劃分為資料庫的連線操作和增刪改查基本操作。

##################################

//方式1

class

vehicle

}public

class

singleresponsibility

分析:

1.在方式1的run方法中,違反了單一職責原則

2.解決方案:根據交通工具執行方法不同,分解成不同類

修改1:方式二:根據交通工具執行方法不同,分解成不同類

class

roadvehicle

}class

airvehicle

}class

watervehicle

}public

class

singleresponsibility

}

*分析修改一(方式二)*

1.遵守單一職責原則

2.但是改動很大,即要將類分解,又要修改客戶端

3.改進:保留並修改vehicle類,改動的**會比較少=>方式3

修改2 (方式3)

//方案3 保留並修改vehicle類

class

vehicle2

public

void

runair

(string vehicle)

public

void

runwater

(string vehicle)

}public

class

singleresponsibility

}

分析:方式三

1.這種修改方法沒有對原來的類做大的修改,只是增加方法;

2.增加的部分不影響原有部分,降低了變更引起的風險;

3.這裡在類這個級別上沒有遵守單一職責原則,但是在方法級

別上,仍然是遵守單一職責。

############################################

單一職責原則注意事項和細節

1)降低類的複雜度,乙個類只負責一項職責。

2)提高類的可讀性,可維護性

3)降低變更引起的風險

4)通常情況下,應當遵守單一職責原則。只有邏輯足夠簡單才可以在**級違反單一職責原則:只有類中方法數量足夠少,可以在方法級別保持單一職責原則。

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

singleresponsibility 對類而言,乙個類只負責一項職責。如果類a負責兩個不同的職責 職責1和職責2 當職責1需求變更改變a時,可能就會造成職責2執行錯誤 所以需要將類a的粒度分解為a1,a2a.降低類的複雜度,乙個類只負責一項職責 b.提高類的可讀性,可維護性 c.降低變更引起的風...

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

responsibility principle srp 乙個類或者模組只負責完成乙個職責 或者功能 類和模組的兩種理解 把模組看作比類更加抽象餓概念,類也可以看作模組 把模組看作壁壘更加粗粒度的 快,模組中包含多個類,多個類組成乙個模組 不是。不管是應用設計原則還是設計模式,最終的目的還是提高 的...

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

乙個類應該只負責一項職責。如類 a 負責兩個不同職責 職責 1,職責 2。當職責 1 需求變更而改變 a 時,可能造成職責 2 執行錯誤,所以需要將類 a 的粒度分解為 a1,a2 以交通工具為案例進行講解 1 public class singleresponsibility1 8 910clas...