php 观察者模式,适配器模式,策略模式

发布于:2021-05-15 09:20:37

4、观察者

他是一种事件系统,意味着这一模式允许某个类观察另一个类的状态,当被观察者的类的状态发生改变的时候,观察类可以收到通知并且做出相应的动作,观察者模式提供了避免组件之间紧密耦合的另一种方法


5、适配器


生活中就有很多适配器,电源适配器,就是里面的变压器  220v

可将一个类的接口转换何曾客户希望的另外一个接口,使得原来不兼容的接口能够一起工作,通俗的理解就是将不同接口适配成统一的接口


6、策略模式


1、多个类之区别在表现行为不同,可以使用strategy模式,在运行时动态选择要执行的行为

2、需要在不同情况下使用不同的策略,或者策略还可能在未来用其他方式来实现

3、对客户隐藏具体策略的实现细节,彼此完全独立



观察者模式:

<?php
//观察者模式涉及到两个类,男人类和女朋友类
//男人类对象小明,女朋友小花和小丽
class Man{
	protected $observers=[];//用来存放观察者
	function addObserver($observer){
		//添加观察者方法
		$this->observers[]=$observer;
	}
	function buy(){
		foreach($this->observers as $girl){
			$girl->dongjie();//当被观察者做出这个行为的时候,观察者得到通知并且做出一定的反应
		}
	}
	function delObserver($observer){
		//删除观察在方法
		$key=array_search($observer,$this->observers);//查找对应值在数组中的键
		array_splice($this->observers,$key,1);//根据键删除值
	}
}
class GirlFriend{
	function dongjie(){
		echo '你的男朋友正在花钱,冻结他的银行卡<br/>';
	}
}
$xiaoming=new Man();
$xiaohua=new GirlFriend();
$xiaoli=new GirlFriend();
//添加观察者
$xiaoming->addObserver($xiaohua);
$xiaoming->addObserver($xiaoli);
$xiaoming->delObserver($xiaohua);
$xiaoming->buy();
?>


适配器模式:

<?php
interface PerfectMan{
	function cook();
	function writePhp();
}
class Wife{
	function cook(){
		echo '我会做饭<br/>';
	}
}
class Man implements PerfectMan{
	protected $wife;
	function __construct($wife){
		//在创建对象的时候保存传递进来的对象
		$this->wife=$wife;
	}
	function cook(){
		$this->wife->cook();
	}
	function writePhp(){
		echo '我会写平php代码<br/>';
	}
}
$li=new Wife();
$ming=new Man($li);
$ming->writePhp();
$ming->cook();
?>



策略模式:

<?php
interface Love{
	function sajiao();
}
class KeAi implements Love{
	function sajiao(){
		echo '讨厌<br/>';
	}
}
class Tiger implements Love{
	function sajiao(){
		echo '给老娘过来<br/>';
	}
}
class GirlFriend{
	protected $xingge;
	function __construct($xingge){
		$this->xingge=$xingge;
	}
	function sajiao(){
		$this->xingge->sajiao();
	}
}

$keai=new KeAi();
$li=new GirlFriend($keai);
$li->sajiao();
?>

https://blog.csdn.net/qq_36594703/article/details/77503195


阅读 122+

一片空白

父爱如山,不善表达。回想十多年前,总记得父亲有个宽厚的肩膀,小小的自己跨坐在上面,越过人山人海去看更广阔的天空,那个时候期望自己有一双翅膀,能够像鸟儿一样飞得高,看得远。虽然父亲有时会和自己开玩笑,但在做错事的时候会受到严厉的训斥。父亲有双粗糙的大手掌。