建手机网站一年费用,幸福宝推广app网站入口,沧州网络公司有哪些,上海在线做网站单一职责原则#xff08;The Single Responsibility Principle#xff0c;SRP#xff09;
就一个类而言#xff0c;应该仅有一个引起它变化的原因。
为何要把两个职责分离到单独的类中#xff1f;
因为每一个职责都是变化的一个轴线#xff08;an axis of change…单一职责原则The Single Responsibility PrincipleSRP
就一个类而言应该仅有一个引起它变化的原因。
为何要把两个职责分离到单独的类中
因为每一个职责都是变化的一个轴线an axis of change。当需求变化时该变化会反应为类的职责的变化。如果一个类承担了多于一个的职责那么引起它变化的原因就会有多个。 Rectangle 类具有两个职责
1、提供了一个矩形几何形状的数学模型
2、在一个图形用户界面上绘制。
一个较好的设计是把这两个职责分离到不同的类中 什么值职责 在SRP中我们把职责定义为“变化的原因”a reason for change。如果你能够想到多于一个的动机去改变一个类那么这个类就具有多于一个的职责。 如果应用程序的变化总是导致多个职责同时变化那么就不必分离它们。 推论变化的轴线仅当变化实际发生时才具有真正的意义。如果没有征兆那么就去应用SRP或者任何其他原则都是不明智的。
// 调制解调器违反SRP
public interface Modem {// 拨号public void dial(String pno);// 挂机public void hangup();// 发送public void send(char c);// 接收public void recv();
}
Modem 包含两个职责
1、连接管理dial 和 hangup
2、数据通信send 和 recv。 分离耦合的职责 ModemImplementation看作是一个杂凑物kludge或者一个瑕疵。然而请注意所有的依赖关系都和它无关谁也不依赖于它。除了main外谁也不知道它的存在。 持久化 一种常见的违反SRP的情形。Employee类包含了业务规则和对持久化的控制。