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应用技巧
Mar 27 PHP
php增删改查示例自己写的demo
Sep 04 PHP
CodeIgniter使用phpcms模板引擎
Nov 12 PHP
Laravel框架表单验证详解
Sep 04 PHP
PHP改进计算字符串相似度的函数similar_text()、levenshtein()
Oct 27 PHP
php+xml实现在线英文词典之添加词条的方法
Jan 23 PHP
基于php实现随机合并数组并排序(原排序)
Nov 26 PHP
Linux系统下使用XHProf和XHGui分析PHP运行性能
Dec 08 PHP
PHP的Yii框架中创建视图和渲染视图的方法详解
Mar 29 PHP
PHP实现的策略模式简单示例
Aug 25 PHP
Yii2.0建立公共方法简单示例
Jan 29 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
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设计模式  Command(命令模式)
2011/06/17 PHP
微信公众号点击菜单即可打开并登录微站的实现方法
2014/11/14 PHP
php curl请求信息和返回信息设置代码实例
2015/04/27 PHP
php7性能提升的原因详解
2019/10/13 PHP
JS 用6N±1法求素数 实例教程
2009/10/20 Javascript
jQuery 扩展对input的一些操作方法
2009/10/30 Javascript
用js模拟JQuery的show与hide动画函数代码
2010/09/20 Javascript
js关闭模态窗口刷新父页面或跳转页面
2012/12/13 Javascript
js实现单行文本向上滚动效果实例代码
2013/11/28 Javascript
用json方式实现在 js 中建立一个map
2014/05/02 Javascript
JQuery弹出层示例可自定义
2014/05/19 Javascript
jQuery EasyUI实现右键菜单变灰不可用效果
2015/09/24 Javascript
超详细的javascript数组方法汇总
2015/11/21 Javascript
jQuery禁用键盘后退屏蔽F5刷新及禁用右键单击
2016/01/22 Javascript
jQuery实现伪分页的方法分享
2016/02/17 Javascript
JS实现上传图片实时预览功能
2017/05/22 Javascript
详解Nodejs之npm&amp;package.json
2017/06/15 NodeJs
js学习总结_选项卡封装(实例讲解)
2017/07/13 Javascript
JS运动特效之完美运动框架实例分析
2018/01/24 Javascript
vue添加axios,并且指定baseurl的方法
2018/09/19 Javascript
微信运维交互机器人的示例代码
2018/11/12 Javascript
纯javascript实现选择框的全选与反选功能
2019/04/08 Javascript
JavaScript Event Loop相关原理解析
2020/06/10 Javascript
vue+axios全局添加请求头和参数操作
2020/07/24 Javascript
python机器学习实战之最近邻kNN分类器
2017/12/20 Python
Python读取properties配置文件操作示例
2018/03/29 Python
解决python flask中config配置管理的问题
2019/07/26 Python
python程序 线程队列queue使用方法解析
2019/09/23 Python
python中对二维列表中一维列表的调用方法
2020/06/07 Python
哪种Python框架适合你?简单介绍几种主流Python框架
2020/08/04 Python
Python Selenium破解滑块验证码最新版(GEETEST95%以上通过率)
2021/01/29 Python
Paradigit比利时电脑卖场:购买笔记本、电脑、平板和外围设备
2016/11/28 全球购物
英国在线潜水商店:Simply Scuba
2019/03/25 全球购物
项目经理岗位职责
2013/11/11 职场文书
领导党性分析材料
2014/02/15 职场文书
初中教师业务学习材料
2014/05/12 职场文书