WEB开发笔记 www.chhua.com 每日练习 PHP面向对象编程——依赖倒置原则(DIP)

依赖倒置原则,听起来比较绕,下面通过一个简单的实例来说明一下PHP面向对象编程的依赖倒置原则

依赖倒置原则的主要目的是,让类与类之间依然有一种相互的依赖性,而这里的依赖并不是“耦合”,相互依赖,且不失灵活。

下面写的一个小例子,是说电脑的输入端口是键盘,而键盘又不是电脑的单一输入端口,其它的输入端口还有鼠标,现在就写一个这样的模仿类来说明一下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php
/*
 * WEB开发笔记 www.chhua.com 每日练习 PHP面向对象编程——依赖倒置原则(DIP)
 * 
 * 依赖倒置原则,听起来比较绕,下面通过一个简单的实例来说明一下PHP面向对象编程的依赖倒置原则
 */
 
/*代码演示 ,例如,电脑的输入端口是键盘,现在就写一个这样的模仿类
 * */
 
class pc {
	public function In() {
		$inputOb=new keyboard();
		$inputOb->input();
	}
}
 
class keyboard {
	public function input(){
		print "Keyboard Input";
	}
}
/*
 * 以上代码 PC类的 IN() 方法就依赖于keyboard类,这样显然是不太好的,看以下的改造
 * 本文由WEB开发笔记(www.chhua.com)原创发表,转载请注明*/
 
class pc1 {
	public function In(keyboard $inputOb){
		$inputOb->input();
	}
}
 
/*改进之后,显然好了很多,是将对象以参数的方式传给PC,并规定了对象的类型,可是,鼠标也能输入呀,所以不得不用上以下的方法,插入一个接口来实现 */
 
interface inputClass{
	public function input();
}
 
class keyboard1 implements inputClass{
	public function input(){
		print "Keyboard Input";
	}
}
 
class mouse implements inputClass{
	public function input(){
		print "Mouse Input";
	}
}
 
class pc2{
	public function In(inputClass $inputOb){
		$inputOb->input();
	}
}
 
/*实例一个PC2 的对象*/
 
$pc2=new pc2();
$pc2->In(new keyboard1());//输出 "Keyboard Input";
$pc2->In(new mouse());//输出  "Mouse Input";
 
/*以上小小的例子就说明了PHP面向对象编程的依赖倒置原则,呵呵,不能抠字眼哟,老外的东西就是要多理解才可以。*/
?>

自由转载,转载请注明: 转载自WEB开发笔记 www.chhua.com

本文链接地址: PHP面向对象编程——依赖倒置原则(DIP) http://www.chhua.com/web-note1135

相关笔记

更多