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生成文件
Jan 15 PHP
PHP中的CMS的涵义
Mar 11 PHP
Ajax PHP简单入门教程代码
Apr 25 PHP
Apache+php+mysql在windows下的安装与配置图解(最新版)
Nov 30 PHP
php中使用cookie来保存用户登录信息的实现代码
Mar 08 PHP
PHP提交表单失败后如何保留已经填写的信息
Jun 20 PHP
9条PHP编程小知识及易犯的小错误
Jan 22 PHP
php视频拍照上传头像功能实现代码分享
Oct 08 PHP
XHProf报告字段含义的解析
May 17 PHP
Symfony2获取web目录绝对路径、相对路径、网址的方法
Nov 14 PHP
php+mysql开发的最简单在线题库(在线做题系统)完整案例
Mar 30 PHP
Laravel框架中缓存的使用方法分析
Sep 06 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/07/30 PHP
PHP创建桌面快捷方式的实例代码
2014/02/17 PHP
Yii入门教程之Yii安装及hello world
2014/11/25 PHP
thinkphp实现上一篇与下一篇的方法
2014/12/08 PHP
php封装的图片(缩略图)处理类完整实例
2016/10/19 PHP
javascript 星级评分效果(手写)
2012/12/24 Javascript
jQuery $命名冲突解决方案汇总
2014/11/13 Javascript
JavaScript的内存释放问题详解
2015/01/21 Javascript
AngularJS iframe跨域打开内容时报错误的解决办法
2015/01/26 Javascript
js jquery获取当前元素的兄弟级 上一个 下一个元素
2015/09/01 Javascript
AngularJS基础 ng-src 指令简单示例
2016/08/03 Javascript
js弹性势能动画之抛物线运动实例详解
2017/07/27 Javascript
JS中使用media实现响应式布局
2017/08/04 Javascript
Angular动画实现的2种方式以及添加购物车动画实例代码
2018/08/09 Javascript
JS实现躲避粒子小游戏
2020/06/18 Javascript
详解js中的几种常用设计模式
2020/07/16 Javascript
[00:27]DOTA2次级职业联赛 - Lilith战队宣传片
2014/12/01 DOTA
python使用urllib2提交http post请求的方法
2015/05/26 Python
利用Python实现颜色色值转换的小工具
2016/10/27 Python
Python使用装饰器模拟用户登陆验证功能示例
2018/08/24 Python
Python绘图Matplotlib之坐标轴及刻度总结
2019/06/28 Python
python3发送邮件需要经过代理服务器的示例代码
2019/07/25 Python
python实现代码统计器
2019/09/19 Python
Mac PyCharm中的.gitignore 安装设置教程
2020/04/16 Python
详解Django中异步任务之django-celery
2020/11/05 Python
基于HTML5 Canvas的3D动态Chart图表的示例
2017/11/02 HTML / CSS
.NET概念性的面试题
2012/02/29 面试题
EJB的激活机制
2013/10/25 面试题
函授毕业自我鉴定
2013/12/19 职场文书
人事部主管岗位职责
2013/12/26 职场文书
前台文员岗位职责
2013/12/28 职场文书
保护野生动物倡议书
2014/05/16 职场文书
房屋过户委托书范本
2014/10/07 职场文书
体育教师个人工作总结
2015/02/09 职场文书
2015年高二班主任工作总结
2015/05/25 职场文书
2016年“11.11”光棍节活动总结
2016/04/05 职场文书