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的MySQL连接类
Jun 07 PHP
discuz目录文件资料汇总
Dec 30 PHP
php中使用session防止用户非法登录后台的方法
Jan 27 PHP
值得分享的php+ajax实时聊天室
Jul 20 PHP
微信红包随机生成算法php版
Jul 21 PHP
php 计算两个时间相差的天数、小时数、分钟数、秒数详解及实例代码
Nov 09 PHP
iOS自定义提示弹出框实现类似UIAlertView的效果
Nov 16 PHP
PHP编程 SSO详细介绍及简单实例
Jan 13 PHP
php实现将二维关联数组转换成字符串的方法详解
Jul 31 PHP
PHP获取日期对应星期、一周日期、星期开始与结束日期的方法
Jun 22 PHP
laravel 5.3 单用户登录简单实现方法
Oct 14 PHP
php并发加锁问题分析与设计代码实例讲解
Feb 26 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递归实现无限分类生成下拉列表的函数
2010/08/08 PHP
PHP读取文件并可支持远程文件的代码分享
2012/10/03 PHP
PHP 提取图片img标记中的任意属性的简单实例
2013/12/10 PHP
PHP实现抓取HTTPS内容
2014/12/01 PHP
PHP的Yii框架中YiiBase入口类的扩展写法示例
2016/03/17 PHP
Jquery实现列表(隔行换色,全选,鼠标滑过当前行)效果实例
2013/06/09 Javascript
多种方法实现load加载完成后把图片一次性显示出来
2014/02/19 Javascript
jQuery控制TR显示隐藏的三种常用方法
2014/08/21 Javascript
jQuery中bind()方法用法实例
2015/01/19 Javascript
限制上传文件大小和格式的jQuery插件实例
2015/01/24 Javascript
javascript设置和获取cookie的方法实例详解
2016/01/05 Javascript
在JavaScript中使用JSON数据
2016/02/15 Javascript
JS获取input file绝对路径的方法(推荐)
2016/08/02 Javascript
详解Windows下安装Nodejs步骤
2017/05/18 NodeJs
Angular2.js实现表单验证详解
2017/06/23 Javascript
vue中的scope使用详解
2017/10/29 Javascript
使用axios实现上传图片进度条功能
2017/12/21 Javascript
基于three.js编写的一个项目类示例代码
2018/01/05 Javascript
JavaScript控制浏览器全屏显示简单示例
2018/07/05 Javascript
原生js实现碰撞检测
2020/03/12 Javascript
vue实现编辑器键盘抬起时内容跟随光标距顶位置向上滚动效果
2020/05/28 Javascript
Python写的PHPMyAdmin暴力破解工具代码
2014/08/06 Python
Python爬取国外天气预报网站的方法
2015/07/10 Python
浅谈python和C语言混编的几种方式(推荐)
2017/09/27 Python
ubuntu安装mysql pycharm sublime
2018/02/20 Python
python实现监控某个服务 服务崩溃即发送邮件报告
2018/06/21 Python
Django 外键的使用方法详解
2019/07/19 Python
移动web模拟客户端实现多方框输入密码效果【附代码】
2016/03/25 HTML / CSS
波兰化妆品和护肤品购物网站:eKobieca
2019/08/30 全球购物
乌克兰珠宝大卖场:Zlato.ua
2020/09/27 全球购物
仓管员岗位责任制
2014/02/19 职场文书
励志演讲稿大全
2014/08/21 职场文书
2016优秀班主任个人先进事迹材料
2016/02/26 职场文书
2019新员工试用期转正工作总结范文
2019/08/21 职场文书
go类型转换及与C的类型转换方式
2021/05/05 Golang
解决golang 关于全局变量的坑
2021/05/06 Golang