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 相关文章推荐
function.inc.php超越php
Dec 09 PHP
PHP UTF8编码内的繁简转换类
Jul 20 PHP
php strstr查找字符串中是否包含某些字符的查找函数
Jun 03 PHP
Apache2中实现多网站域名绑定的实现方法
Jun 01 PHP
php whois查询API制作方法
Jun 23 PHP
PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
Apr 09 PHP
探讨PHP删除文件夹的三种方法
Jun 09 PHP
php生成xml时添加CDATA标签的方法
Oct 17 PHP
php使用post数组的键值创建同名变量并赋值的方法
Apr 03 PHP
Yii框架ACF(accessController)简单权限控制操作示例
Apr 26 PHP
PHP时间相关常用函数用法示例
Jun 03 PHP
PHP中国际化的字符串排序和比较对象详解
Aug 23 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
PHP 危险函数解释 分析
2009/04/22 PHP
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装最快的解决办法
2010/08/01 PHP
JavaScript 原型与继承说明
2010/06/09 Javascript
js 使用form表单select类实现级联菜单效果
2012/12/19 Javascript
JS小功能(button选择颜色)简单实例
2013/11/29 Javascript
JavaScript实现弹出子窗口并传值给父窗口
2014/12/18 Javascript
60行js代码实现俄罗斯方块
2015/03/31 Javascript
javascript实现在网页任意处点左键弹出隐藏菜单的方法
2015/05/13 Javascript
jQuery实现ctrl+enter(回车)提交表单
2015/10/19 Javascript
jQuery图片旋转插件jQueryRotate.js用法实例(附demo下载)
2016/01/21 Javascript
Bootstrap基本模板的使用和理解1
2016/12/14 Javascript
Chrome浏览器的alert弹窗禁止再次弹出后恢复的方法
2016/12/30 Javascript
Angular2 Service实现简单音乐播放器服务
2017/02/24 Javascript
微信小程序的生命周期的详解
2017/10/19 Javascript
详解如何制作并发布一个vue的组件的npm包
2018/11/10 Javascript
Vue2.X和Vue3.0数据响应原理变化的区别
2019/11/07 Javascript
Python IDLE入门简介
2017/12/08 Python
matplotlib 输出保存指定尺寸的图片方法
2018/05/24 Python
python+selenium实现简历自动刷新的示例代码
2019/05/20 Python
python爬取百度贴吧前1000页内容(requests库面向对象思想实现)
2019/08/10 Python
Python面向对象之多态原理与用法案例分析
2019/12/30 Python
pytorch梯度剪裁方式
2020/02/04 Python
django admin管理工具自定义时间区间筛选器DateRangeFilter介绍
2020/05/19 Python
PyTorch中Tensor的数据类型和运算的使用
2020/09/03 Python
Python 内存管理机制全面分析
2021/01/16 Python
Timberland澳大利亚官网:全球领先的户外品牌
2019/12/10 全球购物
澳大利亚在线奢侈品时尚零售平台:Azura Runway
2021/01/13 全球购物
幼儿园校车司机的岗位职责
2014/01/30 职场文书
会计电算化大学生职业规划书
2014/02/05 职场文书
高中军训感言400字
2014/02/24 职场文书
班主任经验交流会主持词
2014/04/01 职场文书
房地产广告策划方案
2014/05/15 职场文书
双拥工作宣传标语
2014/06/26 职场文书
关于读书的活动方案
2014/08/14 职场文书
党员应该树立反腐倡廉的坚定意识思想汇报
2014/09/12 职场文书
会议简报格式范文
2015/07/20 职场文书