php实现设计模式之 桥接模式
2014-11-05 10:51
633 查看
<?php /** 桥接模式:将抽象部分与实现部分分离,使它们都可以独立的变化。 * * 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,桥接模式就是应对这种多维度的变化 */ //例子:车在路上行驶,速度可变。三个维度:路、车、速度。2*2*2=8中情况 //抽象出路,车,速度,分别实现。其中路作为最底层,包含车和速度实例。(也可以把速度放到车里面,车放到路里面) //很灵活的组合,比如说有的需要三个维度,那么三个全用上即可,有的不需要三个维度,那就去掉不要的维度(车快速的行驶,不需要路) interface Road{ public function run(); } class Street implements Road{ public $car; public $speed; public function __construct($car,$speed){ $this->car = $car; $this->speed = $speed; } public function run(){ echo $this->car->run(); echo $this->speed->showSpeed(); echo '行驶在普通街道上'; } } class Freeway implements Road{ public $car; public $speed; public function __construct($car,$speed){ $this->car = $car; $this->speed = $speed; } public function run(){ echo $this->car->run(); echo $this->speed->showSpeed(); echo '行驶在高速公路上'; } } interface Car{ public function run(); } class Jeep implements Car{ public function run(){ echo '吉普车'; } } class Bus implements Car{ public function run(){ echo '公共汽车'; } } interface Speed{ public function showSpeed(); } class Quick implements Speed{ public function showSpeed(){ echo '快速'; } } class Slow implements Speed{ public function showSpeed(){ echo '缓慢'; } } class Client{ public static function main(){ $car = new Jeep(); $speed = new Quick(); $road = new Freeway($car,$speed); $road->run(); } } Client::main(); ?>
UML类图如下:
相关文章推荐
- [设计模式]head first 设计模式之PHP实现 第三章 装饰者模式
- [设计模式]head first 设计模式之PHP实现 第一章 练习题代码
- 单例模式——php单例模式的运用,用单例模式设计实现多例
- 设计模式C++实现(5)——桥接模式
- 设计模式C++实现(10)——桥接模式
- PHP设计模式之观察者模式实现DEMO
- php使用接口实现工厂设计模式
- 桥接模式及C++实现 C++设计模式-AbstractFactory抽象工厂模式
- 设计模式C++实现(10)——桥接模式
- PHP设计模式笔记:使用PHP实现工厂模式
- [设计模式]head first 设计模式之PHP实现 第二章 观察者模式
- 23种经典设计模式的java实现_3_桥接模式
- 设计模式C++实现(10)——桥接模式
- PHP设计模式笔记:使用PHP实现门面模式
- PHP设计模式笔记:使用PHP实现单例模式
- [转]利用 PHP 的 SPL 快速实现 Observer 设计模式
- 设计模式与VB .net实现 桥接模式,单件模式
- 设计模式-PHP实现单件模式的几种方式
- 设计模式十一(桥接模式,python 语言实现)
- 设计模式之桥接模式 及 c++ 实现