<?php
//单一职责原则
class Modem{
public function dial(){
return "dialing....";
}
public function hangup(){
return "hangup!!!";
}
public function send(){
return "send info!!!";
}
public function receive(){
return "received!!!";
}
}
class Client{
public static function doing(){
$modem = new Modem();
echo $modem -> dial(); //拨号
echo $modem -> hangup(); //挂断
echo $modem -> send(); //发送
echo $modem -> receive(); //接收
}
}
//如果要修改接收方式的话,所有依赖modem的模块都要修改了
interface IConnection{
public function dial();
public function hangup();
}
interface ICommunication{
public function send();
public function receive();
}
class Modem implements IConnection, {
public function dial(){
return "dialing....";
}
public function hangup(){
return "hangup!!!";
}
}
class Communication implements ICommunication{
public function send(){
return "send!!!";
}
public function receive(){
return "received!!!";
}
}
class Client{
static public function doing(){
$m = new Modem();
$c = new Communication();
echo $m -> dial(); //拨号
echo $m -> hangup(); //挂断
echo $c -> send(); //发送
echo $c -> receive(); //接收
}
}
Client :: doing();
?>
单一职责原则核心:一个类只完成它应该完成的职责。
一个类只完成它应该完成的职责,不能推诿责任,也不可越殂代疱,不能成为无所不能的上帝类。如果你的团队中实施宽松的“代码集体所有权”,在编码的过程中出现许多人同时修改(维护)同一个类的现象,而且成员之间的沟通不够及时,主动和畅通的话,那么时间一长,就很可能出现“承担过多职责”的上帝类。这时,提炼基类/接口和提炼类重构将能帮助我们消除或减轻这种设计臭味。
原文:http://my.oschina.net/shyl/blog/530043