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错误抑制符(@)导致引用传参失败Bug的分析
May 02 PHP
PHP 日,周,月点击排行统计
Jan 11 PHP
解析posix与perl标准的正则表达式区别
Jun 17 PHP
php实现图片添加水印功能
Feb 13 PHP
php sybase_fetch_array使用方法
Apr 15 PHP
php中使用PHPExcel读写excel(xls)文件的方法
Sep 15 PHP
php计算给定时间之前的函数用法实例
Apr 03 PHP
php使用pclzip类实现文件压缩的方法(附pclzip类下载地址)
Apr 30 PHP
PHP入门教程之面向对象基本概念实例分析
Sep 11 PHP
如何使用php等比例缩放图片
Oct 12 PHP
PHP插件PHPMailer发送邮件功能
Feb 28 PHP
PHP PDOStatement::errorInfo讲解
Jan 31 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编码转换函数 自动转换字符集支持数组转换
2012/12/16 PHP
php中serialize序列化与json性能测试的示例分析
2013/04/27 PHP
php绘制一条弧线的方法
2015/01/24 PHP
CodeIgniter删除和设置Cookie的方法
2015/04/07 PHP
php类自动加载器实现方法
2015/07/28 PHP
PHP抓取及分析网页的方法详解
2016/04/26 PHP
模拟多级复选框效果的jquery代码
2013/08/13 Javascript
javascript引用赋值(地址传值)用法实例
2015/01/13 Javascript
JS &amp; JQuery 动态添加 select option
2016/06/08 Javascript
Vuejs第九篇之组件作用域及props数据传递实例详解
2016/09/05 Javascript
angularjs 实现带查找筛选功能的select下拉框实例
2017/01/11 Javascript
js 转义字符及URI编码详解
2017/02/28 Javascript
简单实现js进度条加载效果
2020/03/25 Javascript
jquery 通过ajax请求获取后台数据显示在表格上的方法
2018/08/08 jQuery
vue 根据数组中某一项的值进行排序的方法
2018/08/30 Javascript
在vue中实现点击选择框阻止弹出层消失的方法
2018/09/15 Javascript
jQuery each和js forEach用法比较
2019/02/27 jQuery
巧妙运用v-model实现父子组件传值的方法示例
2019/04/07 Javascript
vue相同路由跳转强制刷新该路由组件操作
2020/08/05 Javascript
JavaScript arguments.callee作用及替换方案详解
2020/09/02 Javascript
python中abs&amp;map&amp;reduce简介
2018/02/20 Python
python文本数据处理学习笔记详解
2019/06/17 Python
python turtle库画一个方格和圆实例
2019/06/27 Python
基于python实现语音录入识别代码实例
2020/01/17 Python
基于plt.title无法显示中文的快速解决
2020/05/16 Python
用HTML5实现网站在windows8中贴靠的方法
2013/04/21 HTML / CSS
美国学校用品、教室和教学商店:Discount School Supply
2018/04/04 全球购物
英国最大的宝石首饰超市:QP Jewellers
2018/09/23 全球购物
安德玛加拿大官网:Under Armour加拿大
2019/10/02 全球购物
国外软件测试工程师面试题
2016/12/09 面试题
2014学雷锋活动心得体会
2014/03/10 职场文书
教育英语专业毕业生的求职信
2014/03/13 职场文书
2015年加油站站长工作总结
2015/05/27 职场文书
开场白怎么写
2015/06/01 职场文书
FP-growth算法发现频繁项集——构建FP树
2021/06/24 Python
日元符号 ¥
2022/02/17 杂记