Laravel依赖
首先有个接口
interface Visit {
public function go ();
}
然后有三个类Leg,Car,Train
class Leg implements Visit {
public function go (){
echo "walt to 新疆";
}
}
class Car implements Visit {
public function go () {
echo "drive car to 新疆";
}
}
class Train implements Visit {
public function go () {
echo "go to 新疆 by train";
}
}
依赖关系:有一个旅行者Traveller
class Traveller {
protected $trafficTool;
public function __construct () {
//依赖产生
$this->trafficTool = new Leg(); //选择步行
}
public function visitXinjiang () {
$this->trafficTool->go(); //去新疆玩啦
}
}
$visit = new Traveller();
$visit->visitXinjiang();
简单工厂模式:
//工厂
class TracfficToolFactory{
public function createTracfficTool($name) {
switch ($name) {
case 'Leg':
return new Leg();
break;
case 'Car':
return new Car();
break;
case 'Train':
return new Train();
break;
}
}
}
//Traveller
class Traveller {
protected $TrafficTool;
public function createTraffic ($name) {
$this->TrafficTool = new TracfficToolFactory()->createTracfficTool($name);
}
public function visitXinjiang () {
$this->TrafficTool->go();
}
}
$traffic = new Traveller();
$traffic->createTraffic('Leg');
$traffic->visitXingjiang();
Laravel依赖的更多相关文章
- Laravel 依赖注入原理
众所周知 Laravel 的文档对于依赖注入只写了如何使用,相信大多数人对于他的实现原理并不太清楚.虽然使用过程中并不需要关心她的原理,但是了解原理让你使用起来更自信.这个帖子就通过一个小 demo ...
- laravel依赖注入 容器
[看完就懂]Laravel 服务容器,IoC,DI DI DI就是常说的依赖注入,那么究竟什么是依赖注入呢? 打个比方,电脑(非笔记本哈)需要键盘和鼠标我们才能进行操作,这个‘需要’换句话说 ...
- php+laravel依赖注入浅析
laravel容器包含控制反转和依赖注入,使用起来就是,先把对象bind好,需要时可以直接使用make来取就好. 通常我们的调用如下. $config = $container->make('c ...
- laravel依赖注入浅析
laravel容器包含控制反转和依赖注入,使用起来就是,先把对象bind好,需要时可以直接使用make来取就好. 通常我们的调用如下. $config = $container->make('c ...
- laravel 依赖注入
<?php interface Animal{ public function attack(); public function talk(); } class People implemen ...
- laravel 依赖注入 接口设计
假设我现在需要做一个支付服务,那么我先设计一个接口 interface PayInterface{ public function pay(Order $order) : string; } 然后实现 ...
- Laravel 4 系列入门教程(一)
默认条件 本文默认你已经有配置完善的PHP+MySQL运行环境,懂得PHP网站运行的基础知识.跟随本教程走完一遍,你将会得到一个基础的包含登录的简单blog系统,并将学会如何使用一些强大的Larave ...
- Laravel - 1
Laravel - 1 Laravel是一个很强大又非常优雅的php框架,但是Laravel的很多组件都是由社区协作的结果,Composer是php开发的一个依赖管理工具,但是墙把绝大多数的开发者堵在 ...
- Laravel 5.5 文档 ] 快速入门 —— 安装配置篇
服务器要求 Laravel 框架对PHP版本和扩展有一定要求,不过这些要求 Laravel Homestead 都已经满足了,不过如果你没有使用 Homestead 的话(那真是一件很遗憾的事情),有 ...
随机推荐
- leetcode-159周赛-5232-替换子串得到平衡字符串*
题目描述: 方法: 另: class Solution: def balancedString(self, s: str) -> int: n, req = len(s), len(s) // ...
- 深入浅出的Object.defineProperty()
vue的原理 观察者模式和订阅-发布者模式. Vue实例被创建时,会遍历data属性,并通过Object.defineProperty将 这些属性转化为getter/setter,并进行追踪依赖.每当 ...
- Android android studio常用的一些快捷键以及常用权限
android studio的常用快捷键:一.打印log:1.输入logt回车: 自动生成TAG的全局变量:private static final String TAG = "MainA ...
- 暑假集训test-8-31(am)
1.字符串匹配 看到题目以为真是字符串题结果是数学题..70分做法很傻逼然而我更傻逼只有30... 正解是发现两个位置会匹配当且仅当mod gcd(lena,lenb)同余,在一个lcm(lena,l ...
- NX二次开发-UF_OBJ_cycle_by_name遍历名字
使用前自己要看好名字是加在body,还是face,还是curve,或者其他,别加错了. NX9+VS2012 #include <uf.h> #include <uf_obj.h&g ...
- NX二次开发-UFUN链表UF_MODL_create_list等用法
NX9+VS2012 #include <uf.h> #include <uf_modl.h> #include <uf_curve.h> #include < ...
- NX二次开发-UFUN工程图表格注释设置单元格首选项UF_TABNOT_set_cell_prefs
NX9+VS2012 #include <uf.h> #include <uf_tabnot.h> #include <NXOpen/Part.hxx> #incl ...
- 强大的pdf文件操作小工具——PDFtk的小白用法 【转载】
转载出处https://www.cnblogs.com/basterdaidai/p/6204518.html 前言 作为程序员,大家都知道的,总是会被技术小白问各种跟编程没什么关系的硬件.软件问题. ...
- idea从零搭建简单的springboot+Mybatis
需用到的sql /* Navicat MySQL Data Transfer Source Server : localhost root Source Server Version : 80012 ...
- yolov1代码阅读
yolov1使用的backbone是由GoogLeNet启发而来,有24个卷积层,最后接2个全连接层,详细结构如下图: 检测网络的输入分辨率是448X448,最后的特征图大小为7X7.在特征图的每一个 ...