1. 程式人生 > 實用技巧 >PHP-FPM原始碼分析

PHP-FPM原始碼分析

模式定義

介面卡模式:將一個藉口轉化成客戶希望的另一個介面,介面卡模式使介面不相容的類可以一起工作。

模式結構圖

模式分析

介面卡有如下幾個角色

1.Target(目標抽象類)

定義客戶要用的特定領域的介面,可以是個抽象類或藉口,也可以是具體類。

2.Adapter(介面卡類)

介面卡類可以呼叫另一個介面,作為一個轉化器,對Adaptee和Target進行適配,介面卡Adapter是介面卡模式的核心,在類介面卡中,他通過實現Target介面並繼承類來使兩者修昂胡聯絡。

3.Adaptee(適配者類)

適配者即被適配的角色,它定義了一個已經存在的介面。這個介面需要適配,適配類一般是一個實體類,它包含了客戶希望使用的業務方法。

4.Clientlei(客戶類)

針對目標抽象類進行程式設計。

優點:

(1)將目標類和適配類解耦

(2)增加了類的透明性和複用性

(3)靈活性和擴充套件性很好

缺點:

(1)java,C#不支援類的多重繼承。

機器人模仿狗案例

機器人介面類

package com.zck.adapter;

//仿生機器人介面
public interface Robot {
	public void cry();
	public void move();
}

  

狗實體類

package com.zck.adapter;

public class Dog {
	public void wang(){
		System.out.println("狗汪汪叫");
	}
	public void run(){
		System.out.println("狗快快跑");
	}
}

  

狗介面卡類

package com.zck.adapter;

public class DogAdapter extends Dog implements Robot {

	public void cry() {
		System.out.println("機器人模仿");
		super.wang();
	}

	public void move() {
		System.out.println("機器人模仿");
		super.run();

	}

}

  

客戶端類

package com.zck.adapter;

public class Client {
	public static void main(String[] args) {
		DogAdapter dogAdapter = new DogAdapter();
		Robot robot = dogAdapter;
		robot.cry();
		robot.move();
	}

}

  

測試結果