《设计模式之禅》学习笔记(一)
第1章 單一職責(zé)原則
單一職責(zé)原則的英文名稱是Single Responsibility Principle,簡(jiǎn)稱是SRP。這個(gè)原則存在爭(zhēng)議之處在對(duì)職責(zé)的定義,什么是類的職責(zé),以及怎么劃分類的職責(zé)。
RBAC模式(Role-Based Access Control,基于角色的訪問(wèn)控制,通過(guò)分配和取消角色來(lái)完成用戶權(quán)限的授予和取消,使動(dòng)作主體(用戶)與資源的行為(權(quán)限)分離)。
把用戶的信息抽取成一個(gè)BO(Business Object, 業(yè)務(wù)對(duì)象),把行為抽取成一個(gè)Biz(Business Logic,業(yè)務(wù)邏輯)。
SRP的原話解釋:
There should never be more than one reason for a class to change.
單一職責(zé)原則要求一個(gè)接口或類只有一個(gè)原因引起變化,也就是一個(gè)接口或類只有一個(gè)職責(zé),他就負(fù)責(zé)一件事。一個(gè)職責(zé)就是一個(gè)接口。
對(duì)于接口,我們?cè)谠O(shè)計(jì)的時(shí)候一定要做到單一,但是對(duì)于實(shí)現(xiàn)類就需要多方面考慮了,可能不會(huì)滿足單一職責(zé)原則。
單一職責(zé)適用于接口、類,同時(shí)也適用于方法。一個(gè)方法盡可能做一件事情。
類的單一職責(zé)受到非常多因素的制約,純理論地來(lái)講,這個(gè)原則是非常優(yōu)秀的,但是現(xiàn)實(shí)有現(xiàn)實(shí)的難處,你必須去考慮項(xiàng)目工期、成本、人員技術(shù)水平、硬件情況、網(wǎng)絡(luò)情況甚至有時(shí)候還要考慮政府政策、壟斷協(xié)議等因素。接口一定要做到單一職責(zé),類的設(shè)計(jì)盡量做到只有一個(gè)原因引起變化。
轉(zhuǎn)載于:https://www.cnblogs.com/qwertWZ/archive/2012/12/27/2835876.html
總結(jié)
以上是生活随笔為你收集整理的《设计模式之禅》学习笔记(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: mysql字段中ID值自动增长
- 下一篇: [转]孙子兵法