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或asp创建网页桌面快捷方式的代码
Mar 23 PHP
Drupal读取Excel并导入数据库实例
Mar 02 PHP
set_exception_handler函数在ThinkPHP中的用法
Oct 31 PHP
php中mysql连接方式PDO使用详解
Feb 25 PHP
php制作文本式留言板
Mar 18 PHP
修改PHP脚本使WordPress拦截垃圾评论的方法示例
Dec 10 PHP
php从身份证获取性别和出生年月
Feb 09 PHP
php使用PDO从数据库表中读取数据的实现方法(必看)
Jun 02 PHP
浅析PHP类的反射来实现依赖注入过程
Feb 06 PHP
Laravel timestamps 设置为unix时间戳的方法
Oct 11 PHP
php判断数组是否为空的实例方法
May 10 PHP
thinkphp5 redis缓存新增方法实例讲解
Mar 24 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 输出简单动态WAP页面
2009/06/09 PHP
使用php测试硬盘写入速度示例
2014/01/27 PHP
ThinkPHP表单自动验证实例
2014/10/13 PHP
PHP命名空间与自动加载机制的基础介绍
2019/08/25 PHP
Laravel 将数据表的数据导出,并生成seeds种子文件的方法
2019/10/09 PHP
js/jquery判断浏览器类型的方法小结
2015/05/12 Javascript
JQuery中attr方法和removeAttr方法用法实例
2015/05/18 Javascript
基于jquery实现复选框全选,反选,全不选等功能
2015/10/16 Javascript
jquery动画效果学习笔记(8种效果)
2015/11/13 Javascript
使用postMesssage()实现跨域iframe页面间的信息传递方法
2016/03/29 Javascript
Highcharts入门之基本属性
2016/08/02 Javascript
深入理解ES7的async/await的用法
2017/09/09 Javascript
angular.js4使用 RxJS 处理多个 Http 请求
2017/09/23 Javascript
微信小程序滑动选择器的实现代码
2018/08/10 Javascript
微信小程序下拉菜单效果的实例代码
2019/05/14 Javascript
JS实现烟花爆炸效果
2020/03/10 Javascript
windows下安装python paramiko模块的代码
2013/02/10 Python
进一步探究Python的装饰器的运用
2015/05/05 Python
Python中列表的一些基本操作知识汇总
2015/05/20 Python
使用Python编写简单的画图板程序的示例教程
2015/12/08 Python
在CentOS6上安装Python2.7的解决方法
2018/01/09 Python
关于python写入文件自动换行的问题
2018/06/23 Python
使用Python实现在Windows下安装Django
2018/10/17 Python
使用django的objects.filter()方法匹配多个关键字的方法
2019/07/18 Python
pygame实现打字游戏
2021/02/19 Python
pytorch masked_fill报错的解决
2020/02/18 Python
Windows 下python3.8环境安装教程图文详解
2020/03/11 Python
如何在Anaconda中打开python自带idle
2020/09/21 Python
美国户外烹饪产品购物网站:Outdoor Cooking
2020/01/10 全球购物
俄罗斯三星品牌商店:Samsungstore
2020/04/05 全球购物
初中地理教学反思
2014/01/11 职场文书
高中班主任培训心得体会
2016/01/07 职场文书
教你解决往mysql数据库中存入汉字报错的方法
2021/05/06 MySQL
Spring Data JPA的Audit功能审计数据库的变更
2021/06/26 Java/Android
python模板入门教程之flask Jinja
2022/04/11 Python
Mysql中的触发器定义及语法介绍
2022/06/25 MySQL