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