php接口隔离原则实例分析


Posted in PHP onNovember 11, 2019

本文实例讲述了php接口隔离原则。分享给大家供大家参考,具体如下:

使用多个专门的接口比使用单一的总接口要好。

一个类对另外一个类的依赖性应当是建立在最小的接口上的。

一个接口代表一个角色,不应当将不同的角色都交给一个接口。没有关系的接口合并在一起,形成一个臃肿的大接口,这是对角色和接口的污染。

“不应该强迫客户依赖于它们不用的方法。接口属于客户,不属于它所在的类层次结构。”这个说得很明白了,再通俗点说,不要强迫客户使用它们不用的方法,如果强迫用户使用它们不使用的方法,那么这些客户就会面临由于这些不使用的方法的改变所带来的改变。

<?php
interface A
{
  public function getAge();
}
interface B extends A
{
  public function getName();
}
class D implements A
{
  /**
   * interface @Override
   */
  public function getAge()
  {
    return 22;
  }
}
class C extends D implements B
{
  /*
   * interface @Override
   */
  public function getName()
  {
    return '勇哥';
  }
}
header("content-type:text/html;charset=utf-8");
$c = new \C();
echo $c->getName();
?>

运行结果:

勇哥

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP生成随机密码类分享
Jun 25 PHP
php中多维数组按指定value排序的实现代码
Aug 19 PHP
PHP实现UTF-8文件BOM自动检测与移除实例
Nov 05 PHP
php+mysql数据库实现无限分类的方法
Dec 12 PHP
php采集内容中带有图片地址的远程图片并保存的方法
Jan 03 PHP
C# WinForm中实现快捷键自定义设置实例
Jan 23 PHP
PHP开发Apache服务器配置
Jul 15 PHP
PHP7+Nginx的配置与安装教程详解
May 10 PHP
PHP实现时间比较和时间差计算的方法示例
Jul 24 PHP
LNMP部署laravel以及xhprof安装使用教程
Sep 14 PHP
laravel5.5安装jwt-auth 生成token令牌的示例
Oct 24 PHP
thinkphp5.1框架模板赋值与变量输出示例
May 25 PHP
Yii框架布局文件的动态切换操作示例
Nov 11 #PHP
Yii框架模拟组件调用注入示例
Nov 11 #PHP
在Laravel中使用MongoDB的方法示例
Nov 11 #PHP
PHP使用递归按层级查找数据的方法
Nov 10 #PHP
php和js实现根据子网掩码和ip计算子网功能示例
Nov 09 #PHP
PHP发送邮件确认验证注册功能示例【修改别人邮件类】
Nov 09 #PHP
php进程(线程)通信基础之System V共享内存简单实例分析
Nov 09 #PHP
You might like
下载文件的点击数回填
2006/10/09 PHP
PHP array 的加法操作代码
2010/07/24 PHP
PHP+MySql+jQuery实现的&quot;顶&quot;和&quot;踩&quot;投票功能
2016/05/21 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
2018/02/07 PHP
PhpStorm本地断点调试的方法步骤
2018/05/21 PHP
jquery 选项卡效果 新手代码
2011/07/08 Javascript
jquery 延迟执行实例介绍
2013/08/20 Javascript
正则表达式中特殊符号及正则表达式的几种方法总结(replace,test,search)
2013/11/26 Javascript
Javascript加载速度慢的解决方案
2014/03/11 Javascript
Nodejs实现多人同时在线移动鼠标的小游戏分享
2014/12/06 NodeJs
jquery实现无刷新验证码的简单实例
2016/05/19 Javascript
微信小程序 Audio API详解及实例代码
2016/09/30 Javascript
javascript滚轮控制模拟滚动条
2016/10/19 Javascript
文件上传插件SWFUpload的使用指南
2016/11/29 Javascript
JS实现向iframe中表单传值的方法
2017/03/24 Javascript
express默认日志组件morgan的方法
2018/04/05 Javascript
React项目动态设置title标题的方法示例
2018/09/26 Javascript
详解Vue2 添加对scss的支持
2019/01/02 Javascript
VueJs里利用CryptoJs实现加密及解密的方法示例
2019/04/29 Javascript
vue pages 多入口项目 + chainWebpack 全局引用缩写说明
2020/09/21 Javascript
python中的代码编码格式转换问题
2015/06/10 Python
python中pandas.DataFrame对行与列求和及添加新行与列示例
2017/03/12 Python
python数据分析数据标准化及离散化详解
2018/02/26 Python
解决Django migrate No changes detected 不能创建表的问题
2018/05/27 Python
Python+OpenCV+pyQt5录制双目摄像头视频的实例
2019/06/28 Python
Python利用多线程同步锁实现多窗口订票系统(推荐)
2019/12/22 Python
canvas离屏技术与放大镜实现代码示例
2018/08/31 HTML / CSS
草莓网化妆品日本站:Strawberrynet日本
2017/10/20 全球购物
大学毕业生最详细的自我评价分享
2013/11/18 职场文书
小学教师师德师风演讲稿
2014/08/22 职场文书
公安机关纪律作风整顿剖析
2014/10/10 职场文书
索赔员岗位职责
2015/02/15 职场文书
开会通知
2015/04/20 职场文书
在js中修改html body的样式
2021/11/11 Javascript
P站美图推荐——变身女主角特辑
2022/03/20 日漫
浅谈Redis变慢的原因及排查方法
2022/06/21 Redis