控制反转:控制权交给了自己的类

依赖注入:依赖另一个类,我没有手动去new它

<?php
/*我自己要用的类*/
class User {
private $name;
private $age;
public function __construct($name,$age){
$this->name=$name;
$this->age=$age;
}
public static function createResource($conf) {
return new self($conf['name'],$conf['age']);
}
public function says(){
echo $this->name;
}
} $conf=array(
'name'=>'taoshihan',
'age'=>10
); /*把这个地方放到一个类里,它就是个容器的概念了*/
/*体现了控制反转,所有的操作都是我自己的类里面进行的处理,不需要在调用的时候处理*/
/*这里也体现了依赖注入,就是我不手动去new对象了,我是在下面的方法中获取的对象*/
$user=call_user_func_array(array('User', "createResource"), array($conf)); $user->says();

  

最新文章

  1. Android线程机制——AsyncTask
  2. 【LeetCode】389 Find the Difference(java)
  3. SQL Server 数据类型
  4. MySQL 5.6 双机热备
  5. Java代码性能优化总结
  6. hdu 4825 Xor Sum (建树) 2014年百度之星程序设计大赛 - 资格赛 1003
  7. C#调用dll时的类型转换总结
  8. ElastciSearch常用APi
  9. Unity3D-基本导航(NavMesh)功能实现
  10. Form 对象的集合
  11. 炮兵阵地 - POJ 1185(状态压缩)
  12. ui-router ^1.x在ng1中使用state events
  13. Objective-C 浅拷贝与深拷贝
  14. MySql排名查询
  15. 什么是SQL游标?
  16. Java虚拟机(六):JVM调优工具
  17. memcmp 和 memcpy使用
  18. mysql 修改表的字符集
  19. git提交代码到远程仓库
  20. 77.PS接收来自PL的按键中断

热门文章

  1. hadoop源码学习(二)之ZooKeeper
  2. vuex学习
  3. COCOMOII的使用说明
  4. 检测 web项目 404 500 状态的 页面
  5. Winsock编程基础2(UDP流程)
  6. Nginx实现集群服务器的负载均衡
  7. [Swift]LeetCode69. x 的平方根 | Sqrt(x)
  8. [Swift]LeetCode402. 移掉K位数字 | Remove K Digits
  9. GraphQL-前端开发的利剑与桥梁
  10. Mysql的两种“超过多少次”写法(力扣596)