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 相关文章推荐
56.com视频采集接口程序(PHP)
Sep 22 PHP
Sorting Array Values in PHP(数组排序)
Sep 15 PHP
浅析ThinkPHP中的pathinfo模式和URL重写
Jan 06 PHP
php中替换字符串中的空格为逗号','的方法
Jun 09 PHP
set_exception_handler函数在ThinkPHP中的用法
Oct 31 PHP
PHP实现查询两个数组中不同元素的方法
Feb 23 PHP
yii2.0实现创建简单widgets示例
Jul 18 PHP
php微信支付接口开发程序
Aug 02 PHP
PHP文件操作实例总结
Sep 27 PHP
PHP+AjaxForm异步带进度条上传文件实例代码
Aug 14 PHP
PHP使用文件锁解决高并发问题示例
Mar 29 PHP
PHP递归算法的简单实例
Feb 28 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
ThinkPHP利用PHPMailer实现邮件发送实现代码
2013/09/26 PHP
PHP简单实现数字分页功能示例
2016/08/24 PHP
php判断电子邮件是否正确方法
2018/12/04 PHP
Laravel如何实现自动加载类
2019/10/14 PHP
11款新鲜的jQuery插件[附所有demo下载]
2011/01/24 Javascript
jQuery窗口、文档、网页各种高度的精确理解
2014/07/02 Javascript
js字符串完全替换函数分享
2014/12/03 Javascript
如何解决手机浏览器页面点击不跳转浏览器双击放大网页
2016/07/01 Javascript
两种JavaScript的AES加密方式(可与Java相互加解密)
2016/08/02 Javascript
实例解析angularjs的filter过滤器
2016/12/14 Javascript
EditPlus中的正则表达式 实战(2)
2016/12/15 Javascript
详解打造 Vue.js 可复用组件
2017/03/24 Javascript
Webpack 服务器端代码打包的示例代码
2017/09/19 Javascript
详解vue移动端项目代码拆分记录
2019/03/15 Javascript
vue实现公共方法抽离
2020/07/31 Javascript
Python中让MySQL查询结果返回字典类型的方法
2014/08/22 Python
Python下的subprocess模块的入门指引
2015/04/16 Python
Python使用ntplib库同步校准当地时间的方法
2016/07/02 Python
Python增强赋值和共享引用注意事项小结
2019/05/28 Python
详解Anconda环境下载python包的教程(图形界面+命令行+pycharm安装)
2019/11/11 Python
Django后端发送小程序微信模板消息示例(服务通知)
2019/12/17 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧(自定义信号与槽)详解与实例
2020/03/06 Python
Django Path转换器自定义及正则代码实例
2020/05/29 Python
Python3基于print打印带颜色字符串
2020/07/06 Python
任意一块网页内容实现“活”的背景(目前火狐浏览器专有)
2014/05/07 HTML / CSS
Stio官网:男女、儿童户外服装
2019/12/13 全球购物
俄罗斯童装网上商店:BebaKids
2020/06/06 全球购物
毕业生机械建模求职信
2013/10/14 职场文书
大型活动策划方案
2014/01/12 职场文书
警察群众路线对照检查材料思想汇报
2014/10/01 职场文书
五好家庭事迹材料
2014/12/20 职场文书
拾金不昧表扬信怎么写
2015/05/04 职场文书
简述python四种分词工具,盘点哪个更好用?
2021/04/13 Python
CSS3实现的侧滑菜单
2021/04/27 HTML / CSS
css3 利用transform-origin 实现圆点分布在大圆上布局及旋转特效
2021/04/29 HTML / CSS
Python matplotlib 利用随机函数生成变化图形
2022/04/26 Python