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的计数器程序
Oct 09 PHP
PHP脚本的10个技巧(4)
Oct 09 PHP
用PHP 快速生成 Flash 动画的方法
Mar 06 PHP
php 页面执行时间计算代码
Dec 04 PHP
Windows下安装Memcached的步骤说明
Apr 25 PHP
用来解析.htgroup文件的PHP类
Sep 05 PHP
深入file_get_contents与curl函数的详解
Jun 25 PHP
关于php程序报date()警告的处理(date_default_timezone_set)
Oct 22 PHP
PHP函数分享之curl方式取得数据、模拟登陆、POST数据
Jun 04 PHP
php统计数组元素个数的方法
Jul 02 PHP
php之header的不同用法总结(实例讲解)
Nov 28 PHP
php实现的PDO异常处理操作分析
Dec 27 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
Linux下安装PHP MSSQL扩展教程
2014/10/24 PHP
Codeigniter校验ip地址的方法
2015/03/21 PHP
PHP5.2中PDO的简单使用方法
2016/03/25 PHP
CI框架扩展系统核心类的方法分析
2016/05/23 PHP
php for 循环使用的简单实例
2016/06/02 PHP
Laravel 读取 config 下的数据方法
2019/10/13 PHP
PHP使用递归按层级查找数据的方法
2019/11/10 PHP
window.showModalDialog使用手册
2007/01/11 Javascript
一些常用的JS功能函数(2009-06-04更新)
2009/06/04 Javascript
prototype 中文参数乱码解决方案
2009/11/09 Javascript
仿百度输入框智能提示的js代码
2013/08/22 Javascript
JavaScript数组去重的两种方法推荐
2016/04/05 Javascript
浅谈angular懒加载的一些坑
2016/08/20 Javascript
微信小程序日历组件calendar详解及实例
2017/06/08 Javascript
JavaScript之map reduce_动力节点Java学院整理
2017/06/29 Javascript
vue2.0安装style/css loader的方法
2018/03/14 Javascript
深入浅出了解Node.js Streams
2019/05/27 Javascript
vue子路由跳转实现tab选项卡
2019/07/24 Javascript
vue 中 elment-ui table合并上下两行相同数据单元格
2019/12/26 Javascript
vue实现购物车功能(商品分类)
2020/04/20 Javascript
解决vue addRoutes不生效问题
2020/08/04 Javascript
[04:40]2016个国际邀请赛中国区预选赛场地——华西村观战指南
2016/06/25 DOTA
python贪婪匹配以及多行匹配的实例讲解
2018/04/19 Python
Python数据类型之Dict字典实例详解
2019/05/07 Python
python脚本后台执行方式
2019/12/21 Python
python数据处理——对pandas进行数据变频或插值实例
2020/04/22 Python
获取CSDN文章内容并转换为markdown文本的python
2020/09/06 Python
python3代码中实现加法重载的实例
2020/12/03 Python
CSS3标注引用的出处和来源的方法
2020/02/25 HTML / CSS
用HTML5制作数字时钟的教程
2015/05/11 HTML / CSS
DBA的职责都有哪些
2012/05/16 面试题
党员承诺书格式
2014/05/21 职场文书
金融系应届毕业生求职信
2014/05/26 职场文书
2015教师个人师德工作总结
2015/10/23 职场文书
Nginx设置日志打印post请求参数的方法
2021/03/31 Servers
总结Pyinstaller打包的高级用法
2021/06/28 Python