为何会产生?
因为方便(懒):可能很多初级程序员脑海里跳出的第一个词就是方便了。但是殊不知一时的贪快与简便,却给代码架构的未来留下了坑。毕竟欲速则不达
坏的影响?
- 导致代码难以维护
- 可读性差
- 低内聚:如果相同业务需要改动的话,那就要找出所有的重复代码加以改动。
如何解决?
提取出函数,将公共的部分统一进行封装,在需要的地方直接调用就可以了。
具体实例
class play
{
public function playFootball(){
$booking = new Booking(); // 预定类
$booking->check();
$booking->pay();
}
public function playPingPang(){
$booking = new Booking();
$booking->check();
$booking->pay();
}
}
// 打球需要预定 可以发现上面这个方法是不可取的 因为重复了而我们只需要改成下面这样就行了。
class play
{
public function playFootball(){
$booking = new Booking();
$booking->reserve();
}
public function playPingPang(){
$booking = new Booking();
$booking->reserve();
}
}
// 这样看起来是不是易读很多了 将预定的行为完全封装到 reserve 方法里面了。
重复代表的类型
- 完全的复制粘贴代码;
- 结构重复的代码;
- if 和 else 代码块中的语句高度类似
DRY原则(不能重复原则)
编程代码原则:每一处知识都必须有单一、明确、权威地表述。
总结
作为程序员我们要有自己的坚守,千万不能因为偷懒而去复制粘贴。如果需要复制粘贴,首先应该做的是提取一个新的函数出来,把公共的部分先同意掉。
要记住:不要重复自己,不要复制粘贴