介绍

因此,你将一遍又一遍地面对类似的问题.

LSP:

您的A服务器是容器的用途,它可以简单地存储数据.然后你扩展这个,最终破坏是一种关系.这是因为容器不是hanlder. has-a是要走的路.你可以通过构造函数inject a container到那个$handler

SRP:

由于您的C同时承担3项职责,因此它肯定违反了单一责任原则.第一个是数据容器,第二个是做B的东西,第三个是做C的东西.

这也称为深度继承,这显然是一种不好的做法,直到它满足SRP和LSP.

一个例子,说明如何在遵守SRP,LSP和DI的同时减少代码重复.

class Container

{

protected $container = array();

public function setName($name)

{

$this->container['name'] = $name;

}

public function getName()

{

return $this->container['name'];

}

public function setAge($age)

{

$this->container['age'] = $age;

}

public function getAge()

{

return $this->container['age'];

}

}

class Handler

{

protected $pdo;

public function __construct($pdo)

{

$this->pdo = $pdo;

}

public function fetchSomething(Container $container)

{

$query = "SELECT * FROM `table` WHERE `name` =:name AND `age` =:age";

$stmt = $this->pdo->prepare($query);

$stmt->execute(array(

':name' => $container->getName(),

':age' => $container->getAge()

));

return $stmt->fetch();

}

}

$container = new Container();

$container->setName($_POST['name']);

$container->setAge($_POST['age']);

$handler = new Handler($pdo);

$stuff = $handler->fetchSomething($container);

print_r($stuff);

那么,你会在这里获得什么?重用能力,从而减少代码重复.

既然你也做DBcore :: get(‘foo’),你可能想要read this article

减少php,如何减少PHP代码?相关推荐

  1. 如何减少项目中的冗余代码?

    如何减少项目中的冗余代码? 前言 为什么会出现冗余代码 如何解决 提取公共请求/业务逻辑 聚合函数的收敛 能合并的函数进行合并 善用配置表思维 再会 前言 随着业务的不断迭代,项目代码会变得越来越多. ...

  2. 谷歌提出新型卷积网络EfficientNet:推理速度提升5.1倍,参数减少88%(附论文代码)...

    来源:机器之心 本文共1500字,建议阅读8分钟. 谷歌提出了一种新型CNN网络EfficientNet,该网络具备极高的参数效率和速度. [ 导读 ]谷歌提出了一项新型模型缩放方法:利用复合系数统一 ...

  3. 怎么减少if()---else操作,优化代码

    一:提前return,减少else 如果 if-else 代码块包含 return 语句,可以考虑通过提前 return,把多余 else 干掉. 代码举例子: 更改之前: if (condition ...

  4. python嵌套循环优化_减少循环嵌套,提升代码运行速度!你不知道的3个实用Python函数...

    作为21世纪最流行的语言之一,Python有很多有趣的功能值得深入探索和研究.今天将讨论其中的三个你可能没听说过的函数,将从理论和实际应用两方面为你详细讲解. 我之所以要讨论这些函数,主要是因为它们可 ...

  5. 如何减少mac动画_如何在Mac上使用减少运动功能减少桌面动画

    如何减少mac动画 The Mac, just like iOS, has more than its fair share of fancy animations that accompany mo ...

  6. java 减少内存_java – 减少内存流失的方法

    背景 我有一个Spring批处理程序读取文件(我正在使用的示例文件大小为4 GB),对文件进行少量处理,然后将其写入Oracle数据库. 我的程序使用1个线程来读取文件,12个工作线程进行处理和数据库 ...

  7. finally 嵌套_学习 Rust【2】减少代码嵌套

    结论先行:减少代码嵌套就是降低复杂度. 资源管理一向是编程中的重要任务.当一个函数要管理多个资源时,很容易出现代码嵌套层级太深的问题,尤其是调用系统或第三方 API 时. 以 C 语言代码为例,这里简 ...

  8. 通过 ASP.NET 2.0 的数据增强功能来提高负载和减少代码 --作者:Dino Esposito

    [导读]在ASP.NET 2.0中引入了数据源组件,相对于1.x版本,在开发效率和运行效率上都得到了极大的提升,而本文将详细介绍新的数据控件,包括编程接口.用法和实现. 绝大多数Web应用程序都会使用 ...

  9. 窗函数-减少傅里叶变换泄漏

    数字信号处理的主要数学工具是傅里叶变换.而傅里叶变换是研究整个时间域和频率域的关系. 快速傅里叶变换假定了时间信号是周期无限的.但在分析时,我们往往只截取其中的一部分,因此需要加窗以减小泄露.窗函数可 ...

最新文章

  1. Ubuntu 17.4下如何安装和配置flash player
  2. 使用宝塔面板部署tp5网站
  3. Alpha冲刺 - 事后诸葛亮
  4. 如何实现一个循环显示超长图片的控件
  5. php获取pc访问还是手机号_PHP函数判断电脑端浏览器访问访问还是手机端浏览器访问...
  6. sqlite3 not found问题解决方法
  7. 李宏毅-《深度学习人类语言处理》国语版(2020)视频课程及ppt分享
  8. Matlab工具箱实现张正友相机标定
  9. 图数据库扫盲和图数据选用
  10. 域名的分类:com,cn,net的区别
  11. 3D电影、游戏里的角色是怎么制作的?
  12. Windows 最新版sourcetree免登录方法
  13. 嵌入式Linux的低功耗策略
  14. 鲁大师发布2021年半年报,哪些手机最强?
  15. 通过共享门店收款码系统,可快速获得门店现金流
  16. 大学计算机专业高考听力,05-《高考必刷卷 42套》云南师范大学附属中学2018届高考适应性月考(六)听力音频-喜马拉雅...
  17. CentOS 把用户添加到sudoer
  18. PTA 浙大版《C语言程序设计实验与习题指导(第3版)》题目集(参考代码)
  19. mysql事务scalar_数据库连接池、事务
  20. 【系统维护篇】之 win10 office 2016安装步骤

热门文章

  1. Qt学习之路1---软件下载安装及工程简介
  2. 高性能队列 Disruptor
  3. 【Android】16.3 带Intent过滤器的Services
  4. 从汇编来看i++与++i
  5. linux下添加新硬盘的方法
  6. Linux学习6-CentOS搭建appium服务
  7. 背景固定,内容滑动效果 - 仿QQ下载首页
  8. 关于主窗体与子窗体之间的通信以及面向对象思想的一些应用
  9. Jmeter基础使用
  10. Maven 构建流程