SRP:單一職責原則(The Single Responsibility Principle,SRP):
一個類應該只有一個發生變化的原因。
在SRP中,我們把職責定義為變化的原因。如果你能夠想到多于一個的動機去改變一個類,那么這個類就具有多于一個的職責。
例如如下Modem的接口違反了SRP:
package com.pptb.design.patterns.srp;
public interface Modem {
void dial(String pno);
void hangUp();
void send(char c);
char recv();
}
Modem接口的dial和hangup函數職責是連接管理,send和recv的職責是數據通信,應該將這兩組函數分離到兩個接口中,如下:
package com.pptb.design.patterns.srp;
public interface Connection {
void dial(String pno);
void hangUp();
}
package com.pptb.design.patterns.srp;
public interface DataChannel {
void send(char c);
char recv();
}