「既製品」
アンを気にするAdapter Design Patternスプリングコンポーネントを使用すると、再利用したい魅力的な機能を提供していますが、その「世界観は、」哲学とアーキテクチャと互換性がありません現在開発中のシステムです。
これは、他のクラスで必要なすべてのメソッドでAPIを公開するフレームワーク用のクラスを作成することを意味します。これはあなたがそれをやりとりする唯一のインターフェースです。次に、サポートするデータベースごとにアダプタを作成します。あなたのアダプターはあなたのフレームワークとDALの間の仲介者になります。
例:
interface DB_Interface
{
public function somethingYourFrameworkUses();
}
class YourDB implements DB_Interface
{
public function setAdapter(DB_Interface $adapter)
{
$this->adapter = $adapter;
}
public function somethingYourFrameworkUses()
{
$this->adapter->somethingYourFrameworkUses();
}
}
上記は、あなたのメインクラスです。残りのフレームワークのコードからのみ、このクラスと対話します。特定のデータベースと対話するために必要な機能は、具体的なアダプタに含まれています。実行時にアダプタをインスタンス化して注入します。
class PDO_Adapter implements DBInterface
{
public function somethingYourFrameworkUses()
{
// code to make this function work with PDO
}
}
class MySQLi_Adapter implements DBInterface
{
public function somethingYourFrameworkUses()
{
// code to make this function work with MySQLiAdapter
}
}
適切に表示されるように追加のアダプターを追加します。