デザインパターン:ブリッジモード

目的:「クラス階層を実現する、」「機能クラス階層」と分類

機能クラスレベル:機能クラスを追加するための継承によって(正常な機能を追加します)

クラスのレベルを達成するには、次の継承クラスを介して仮想関数を実装

おくる:と方法同じアダプタモードをブリッジ

例:

クラスDisplayImpl 
{ 
パブリック:
	仮想ボイドオープン()= 0; 
	仮想ボイドプリント()= 0; 
	仮想ボイド近い()= 0; 
}。

 クラスStringDisplayImpl:公共DisplayImpl //实现性扩展
 { 
 パブリック:
	無効オープン()
	{ 
		coutの<< "オープン()" <<てendl; 
	} 
	
	ボイドプリント()
	{ 
		COUT << "印刷()" << ENDL。
	} 
	
	ボイド近い()
	{ 
		COUT << "クローズ()" << ENDL。
	} 
 }。
表示クラス
{ 
	DisplayImpl * PIMPL、コアコード//架橋
公開:
	ディスプレイ(DisplayImpl PIMPL *)
	{ 
		this-> = PIMPL PIMPL; 
	} 
	
	ボイドプリント()
	{ 
		pImpl->オープン(); 
		pImpl->印刷(); 
		PIMPL - >クローズ(); 
	} 
}; 

クラスマルチディスプレイ://パブリックディスプレイ機能拡張
{ 
パブリック:
	マルチディスプレイ(DisplayImpl PIMPL *):ディスプレイ(PIMPL)
	{} 
	
	ボイドMultiprint()
	{ 
		ため(I = 0 int型、Iは<5。 ; I ++)
		{ 
			プリント(); 
		} 
	} 
}。
メインINT()
{ 
	ディスプレイ*のD =新しいディスプレイ(新しいStringDisplayImpl())。
	D->印刷(); 
	
	coutの<<てendl; 
	
	マルチディスプレイ* MD =新しいマルチディスプレイ(新StringDisplayImpl()); 
	MD-> multiPrint(); 
	
	0を返します。
}

 

おすすめ

転載: www.cnblogs.com/chusiyong/p/11433290.html