設計原則之單一職能原則 動機: 一個職能被考慮成爲只有唯一理由去改變,如果我們有兩個理由去改變一個類,我們要把這兩個功能分成兩個類。每個類只控制一個職能,如果在未來有一天我們做某個改變,去改變對應的類就行了。 目標: 一個類應該只有一個被改的理由。 Bad Example:缺點: 1、新增一個新的協議將會帶來一個新需求,要爲每種域序列化內容。 2、內容不一定是string,也會有html等其他形式。 // single responsibility principle - bad example interface IEmail { public void setSender(String sender); public void setReceiver(String receiver); public void setContent(String content); } class Email implements IEmail { public void setSender(String sender) {// set sender; } public void setReceiver(String receiver) {// set receiver; } public void setContent(String content) {// set content; } } Good Example:好處: 1、新增一個新的協議只要改email類 2、一個新的content只要修改content類。 // single responsibility principle - good example interface IEmail { public void setSender(String sender); public void setReceiver(String receiver); public void setContent(IContent content); } interface Content { public String getAsString(); // used for serialization } class Email implements IEmail { public void setSender(String sender) {// set sender; } public void setReceiver(String receiver) {// set receiver; } public void setContent(IContent content) {// set content; } }
設計原則之單一職能原則
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.