今天小编给大家分享一下php桥接模式实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
说明
1、将两个原本不相关的类结合在一起,然后利用两个类中的方法和属性,输出一份新的结果。
2、结构分为抽象类、被提炼的抽象类、实现类、具体实现类和客户端代码。
实例
/**
* 颜色抽象类
* Class Colour
*/
abstract class Colour
{
/**
* @return mixed
*/
abstract public function run();
}
/**
* 黑色
* Class Black
*/
class Black extends Colour
{
public function run()
{
// TODO: Implement run() method.
return '黑色';
}
}
/**
* 白色
* Class White
*/
class White extends Colour
{
public function run()
{
// TODO: Implement run() method.
return '白色';
}
}
/**
* 红色
* Class Red
*/
class Red extends Colour
{
public function run()
{
// TODO: Implement run() method.
return '红色';
}
}
/**
* 形状抽象类
* Class Shape
*/
abstract class Shape
{
/**
* 颜色
* @var Colour
*/
protected $colour;
/**
* Shape constructor.
* @param Colour $colour
*/
public function __construct(Colour $colour)
{
$this->colour = $colour;
}
/**
* @return mixed
*/
abstract public function operation();
}
/**
* 圆形
* Class Round
*/
class Round extends Shape
{
/**
* @return mixed|void
*/
public function operation()
{
// TODO: Implement operation() method.
echo $this->colour->run() . '圆形<br>';
}
}
/**
* 长方形
* Class Rectangle
*/
class Rectangle extends Shape
{
/**
* @return mixed|void
*/
public function operation()
{
// TODO: Implement operation() method.
echo $this->colour->run() . '长方形<br>';
}
}
/**
* 正方形
* Class Square
*/
class Square extends Shape
{
/**
* @return mixed|void
*/
public function operation()
{
// TODO: Implement operation() method.
echo $this->colour->run() . '正方形<br>';
}
}
// 客户端代码
// 白色圆形
$whiteRound = new Round(new White());
$whiteRound->operation();
// 黑色正方形
$blackSquare = new Square(new Black());
$blackSquare->operation();
// 红色长方形
$redRectangle = new Rectangle(new Red());
$redRectangle->operation();
// 运行结果
白色圆形
黑色正方形
红色长方形
以上就是“php桥接模式实例分析”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/u/4586362/blog/4413935