設計原則之單一職能原則

設計原則之單一職能原則

動機:
        一個職能被考慮成爲只有唯一理由去改變,如果我們有兩個理由去改變一個類,我們要把這兩個功能分成兩個類。每個類只控制一個職能,如果在未來有一天我們做某個改變,去改變對應的類就行了。
目標:        一個類應該只有一個被改的理由。

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; }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章