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 14 PHP
php 判断访客是否为搜索引擎蜘蛛的函数代码
Jul 29 PHP
php header功能的使用
Oct 28 PHP
jquery+php+ajax显示上传进度的多图片上传并生成缩略图代码
Oct 15 PHP
CentOS下PHP安装Oracle扩展
Feb 15 PHP
PHP开发框架laravel安装与配置教程
Mar 13 PHP
Laravel5.1数据库连接、创建数据库、创建model及创建控制器的方法
Mar 29 PHP
详解PHP处理密码的几种方式
Nov 30 PHP
浅谈php中curl、fsockopen的应用
Dec 10 PHP
phalcon model在插入或更新时会自动验证非空字段的解决办法
Dec 29 PHP
PHP实现求两个字符串最长公共子串的方法示例
Nov 17 PHP
ThinkPHP5与单元测试PHPUnit使用详解
Feb 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编码转换函数应用技巧
2016/10/22 PHP
PHP的微信支付接口使用方法讲解
2019/03/08 PHP
php写入mysql中文乱码的实例解决方法
2019/09/17 PHP
PHP的imageTtfText()函数深入详解
2021/03/03 PHP
jquery处理页面弹出层查询数据等待操作实例
2015/03/25 Javascript
从零学习node.js之模块规范(一)
2017/02/21 Javascript
一道面试题引发的对javascript类型转换的思考
2017/03/06 Javascript
JS实现搜索关键词的智能提示功能
2017/07/07 Javascript
jQuery使用bind函数实现绑定多个事件的方法
2017/10/11 jQuery
Bootstrap table中toolbar新增条件查询及refresh参数使用方法
2018/05/18 Javascript
解决JavaScript中0.1+0.2不等于0.3问题
2018/10/23 Javascript
微信小程序实现页面左右滑动
2020/11/16 Javascript
Vue $attrs &amp; inheritAttr实现button禁用效果案例
2020/12/07 Vue.js
python操作摄像头截图实现远程监控的例子
2014/03/25 Python
python进阶教程之循环对象
2014/08/30 Python
python检测是文件还是目录的方法
2015/07/03 Python
python多进程共享变量
2016/04/06 Python
可能是最全面的 Python 字符串拼接总结【收藏】
2018/07/09 Python
python环形单链表的约瑟夫问题详解
2018/09/27 Python
使用python批量化音乐文件格式转换的实例
2019/01/09 Python
python 实现交换两个列表元素的位置示例
2019/06/26 Python
python将音频进行变速的操作方法
2020/04/08 Python
python+selenium+chromedriver实现爬虫示例代码
2020/04/10 Python
基于Python pyecharts实现多种图例代码解析
2020/08/10 Python
使用sublime text3搭建Python编辑环境的实现
2021/01/12 Python
使用CSS3的font-face字体嵌入样式的方法讲解
2016/05/13 HTML / CSS
皮尔·卡丹巴西官方商店:Pierre Cardin
2017/07/21 全球购物
JD Sports芬兰:英国领先的运动鞋和运动服饰零售商
2018/11/16 全球购物
实习自我鉴定
2013/12/15 职场文书
会议室标语
2014/06/21 职场文书
妇联领导班子剖析材料
2014/08/21 职场文书
入党积极分子党小组意见
2015/06/02 职场文书
物资采购管理制度
2015/08/06 职场文书
2016抗战胜利71周年红领巾广播稿
2015/12/18 职场文书
python和Appium的移动端多设备自动化测试框架
2022/04/26 Python
JS中forEach()、map()、every()、some()和filter()的用法
2022/05/11 Javascript