减少php,如何减少PHP代码?
介绍
因此,你将一遍又一遍地面对类似的问题.
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代码?相关推荐
- 如何减少项目中的冗余代码?
如何减少项目中的冗余代码? 前言 为什么会出现冗余代码 如何解决 提取公共请求/业务逻辑 聚合函数的收敛 能合并的函数进行合并 善用配置表思维 再会 前言 随着业务的不断迭代,项目代码会变得越来越多. ...
- 谷歌提出新型卷积网络EfficientNet:推理速度提升5.1倍,参数减少88%(附论文代码)...
来源:机器之心 本文共1500字,建议阅读8分钟. 谷歌提出了一种新型CNN网络EfficientNet,该网络具备极高的参数效率和速度. [ 导读 ]谷歌提出了一项新型模型缩放方法:利用复合系数统一 ...
- 怎么减少if()---else操作,优化代码
一:提前return,减少else 如果 if-else 代码块包含 return 语句,可以考虑通过提前 return,把多余 else 干掉. 代码举例子: 更改之前: if (condition ...
- python嵌套循环优化_减少循环嵌套,提升代码运行速度!你不知道的3个实用Python函数...
作为21世纪最流行的语言之一,Python有很多有趣的功能值得深入探索和研究.今天将讨论其中的三个你可能没听说过的函数,将从理论和实际应用两方面为你详细讲解. 我之所以要讨论这些函数,主要是因为它们可 ...
- 如何减少mac动画_如何在Mac上使用减少运动功能减少桌面动画
如何减少mac动画 The Mac, just like iOS, has more than its fair share of fancy animations that accompany mo ...
- java 减少内存_java – 减少内存流失的方法
背景 我有一个Spring批处理程序读取文件(我正在使用的示例文件大小为4 GB),对文件进行少量处理,然后将其写入Oracle数据库. 我的程序使用1个线程来读取文件,12个工作线程进行处理和数据库 ...
- finally 嵌套_学习 Rust【2】减少代码嵌套
结论先行:减少代码嵌套就是降低复杂度. 资源管理一向是编程中的重要任务.当一个函数要管理多个资源时,很容易出现代码嵌套层级太深的问题,尤其是调用系统或第三方 API 时. 以 C 语言代码为例,这里简 ...
- 通过 ASP.NET 2.0 的数据增强功能来提高负载和减少代码 --作者:Dino Esposito
[导读]在ASP.NET 2.0中引入了数据源组件,相对于1.x版本,在开发效率和运行效率上都得到了极大的提升,而本文将详细介绍新的数据控件,包括编程接口.用法和实现. 绝大多数Web应用程序都会使用 ...
- 窗函数-减少傅里叶变换泄漏
数字信号处理的主要数学工具是傅里叶变换.而傅里叶变换是研究整个时间域和频率域的关系. 快速傅里叶变换假定了时间信号是周期无限的.但在分析时,我们往往只截取其中的一部分,因此需要加窗以减小泄露.窗函数可 ...
最新文章
- Ubuntu 17.4下如何安装和配置flash player
- 使用宝塔面板部署tp5网站
- Alpha冲刺 - 事后诸葛亮
- 如何实现一个循环显示超长图片的控件
- php获取pc访问还是手机号_PHP函数判断电脑端浏览器访问访问还是手机端浏览器访问...
- sqlite3 not found问题解决方法
- 李宏毅-《深度学习人类语言处理》国语版(2020)视频课程及ppt分享
- Matlab工具箱实现张正友相机标定
- 图数据库扫盲和图数据选用
- 域名的分类:com,cn,net的区别
- 3D电影、游戏里的角色是怎么制作的?
- Windows 最新版sourcetree免登录方法
- 嵌入式Linux的低功耗策略
- 鲁大师发布2021年半年报,哪些手机最强?
- 通过共享门店收款码系统,可快速获得门店现金流
- 大学计算机专业高考听力,05-《高考必刷卷 42套》云南师范大学附属中学2018届高考适应性月考(六)听力音频-喜马拉雅...
- CentOS 把用户添加到sudoer
- PTA 浙大版《C语言程序设计实验与习题指导(第3版)》题目集(参考代码)
- mysql事务scalar_数据库连接池、事务
- 【系统维护篇】之 win10 office 2016安装步骤