橋梁模式(Bridge)
將抽象與實(shí)現(xiàn)解耦斧吐,使它們都可以獨(dú)立的變化又固。
主要解決: 橋梁模式完全是為了解決繼承的缺點(diǎn)而提出的設(shè)計(jì)模式。在有多種可能會(huì)變化的情況下煤率,用繼承會(huì)造成類(lèi)爆炸問(wèn)題仰冠,擴(kuò)展起來(lái)不靈活。
bridge
代碼示例:
//顏色接口和實(shí)現(xiàn)
interface Color {
public functino setColor() {};
}
class Red implements Color {
public functino setColor() {
return "red";
}
}
class Black implements Color {
public functino setColor() {
return "black";
}
}
//圖形接口和實(shí)現(xiàn)
interface Shap {
public function draw(x, y, z);
}
class Cirlce implements Shap {
public function setIndex()
return [x, y, z] 蝶糯;
}
}
abstract AbstractDraw {
private $color = '';
private $shap = [0,0,0];
public function setColor(interface Color){};
public function setShap(interface Shap){};
public function draw() {};
}
//畫(huà)圖
class Draw extends AbstractDraw{
public function setColor(interface Color){
$this->color = Color.setColor();
}
public function setShap(interface Shap){
$this->shap = Shap.setIndex();
}
public function draw() {
echo $this->color. 'x: ' . $this->shap[0] . 'y:' $this->shap[1] . 'z:' .$this->shap[2];
}
}