<?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(); ?>
单一职责原则核心:一个类只完成它应该完成的职责。
一个类只完成它应该完成的职责,不能推诿责任,也不可越殂代疱,不能成为无所不能的上帝类。如果你的团队中实施宽松的“代码集体所有权”,在编码的过程中出现许多人同时修改(维护)同一个类的现象,而且成员之间的沟通不够及时,主动和畅通的话,那么时间一长,就很可能出现“承担过多职责”的上帝类。这时,提炼基类/接口和提炼类重构将能帮助我们消除或减轻这种设计臭味。
时间: 2024-10-07 18:42:25