ホームページ バックエンド開発 PHPチュートリアル PHP はアダプター パターンを実装します

PHP はアダプター パターンを実装します

Jun 13, 2016 pm 01:07 PM
function mysql obj oracle record

PHP はアダプター パターンを実装します

アダプター パターンの核となる考え方: 特定の類似クラスの操作を統一された「インターフェイス」に変換します (ここに比喩があります) - アダプター、または比喩的に言えば、それらのクラスを統合または保護する「インターフェイス」です。詳細。アダプター パターンは、アダプターと対話するコードを変更することなく、「アダプティブ」クラスを簡単に追加または削除できる「メカニズム」も構築します。これは、「コード間の結合を減らす」という設計原則に沿っています。

???次の例は、擬似コードに近い PHP 構文を使用して、データベース操作用のアダプター クラスを示しています。このアダプター クラスは、MySQL データベースと Oracle データベースを操作できますが、同じメソッドを使用します。アダプター モードを使用するため、MySQL と Oracle データベース操作クラスの違いを気にする必要はありません。

??? SQLite などのデータベース操作用のクラスを簡単に追加し、アダプターに「挿入」すると、MySQL や Oracle と同じようにすぐに SQLite データベースを操作できます。

??? //アダプタークラス:
??? // すべてのデータベースを操作するための 4 つのメソッドを定義します

<?php
class Db_adapter {
	private $db;
	
	function __construct($db_obj) {
		$this->db = $db_obj;
	}
	
	function select_record() {
		$this->db->select ();
	}
	
	function insert_record() {
		$this->db->insert ();
	}
	
	function update_record() {
		$this->db->update ();
	}
	
	function delete_record() {
		$this->db->delete ();
	}
}

//MySQL 数据库操作类:
class Mysql {
	private $obj_mysql;
	
	function __construct() {
        $obj_mysql = ......
		
		;
	}
	
	function select() {
		$obj_mysql->mysql_select ();
	}
	
	function insert() {
		$obj_mysql->mysql_insert ();
	}
	
	function update() {
		$obj_mysql->mysql_update ();
	}
	
	function delete() {
		$obj_mysql->mysql_delete ();
	}
}

//Oracle 数据库操作类:
class Oracle {
	private $obj_oracle;
	
	function __construct() {
        $obj_oracle = ......
		
		;
	}
	
	function select() {
		$obj_oracle->oracle_select ();
	}
	
	function insert() {
		$obj_oracle->oracle_insert ();
	}
	
	function update() {
		$obj_oracle->oracle_update ();
	}
	
	function delete() {
		$obj_oracle->oracle_delete ();
	}
}

    //操作 MySQL 数据库:
    $obj = new Db_adapter(new Mysql())
	$obj->select_record ();
	$obj->insert_record ();
	$obj->update_record ();
	$obj->delete_record ();

    //操作 Oracle 数据库:
    $obj = new Db_adapter(new Oracle())
	$obj->select_record ();
	$obj->insert_record ();
	$obj->update_record ();
	$obj->delete_record ();
?>
ログイン後にコピー

??? 要件: MySQL クラスと Oracle クラスは同じ名前と同じ数のメソッドを持ちます。各メソッドは、データベースを操作するための独自のコードを実装します。ここで変換が行われます。
??? 新しいデータベース操作を追加します。同じ名前と同じ数のメソッドを持つ新しいクラスを構築します。メソッドの内部実装は考慮されません (シールドされます) - データベースの実装が異なると異なります。
???小さな欠点: 新しいクラスでは、メソッド名が要件を満たしていないか、過失により番号が異なっている可能性があります。
??? エラーの可能性を減らすために、いくつかの改善を行うことができます。インターフェースを定義し、それをテンプレートとして継承することで標準化を図る方法です。

??? db_adapter クラスのメソッドについては、インターフェース db_driver の関数のみを使用する必要があります。

<?php
//定义一个接口,
interface Db_driver {
	function select();
	function insert();
	function update();
	function delete();
}

// 数据库操作类,比如 MySQL,Oracle 必须实现 db_driver 接口的同名方法,从而进行了规范。
class Mysql implements Db_driver {
	private $obj_mysql;
	
	function __construct() {
        $obj_mysql = ......
		;
	}

	//这里省略的代码同前边的 MySQL 类
}

class Oracle implements Db_driver {
	private $obj_oracle;
	
	function __construct() {
        $obj_oracle = ......
		;
	}

	//这里省略的代码同前边的 Oracle 类
}
?>
ログイン後にコピー
?
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

MySQLの場所:データベースとプログラミング MySQLの場所:データベースとプログラミング Apr 13, 2025 am 12:18 AM

データベースとプログラミングにおけるMySQLの位置は非常に重要です。これは、さまざまなアプリケーションシナリオで広く使用されているオープンソースのリレーショナルデータベース管理システムです。 1)MySQLは、効率的なデータストレージ、組織、および検索機能を提供し、Web、モバイル、およびエンタープライズレベルのシステムをサポートします。 2)クライアントサーバーアーキテクチャを使用し、複数のストレージエンジンとインデックスの最適化をサポートします。 3)基本的な使用には、テーブルの作成とデータの挿入が含まれ、高度な使用法にはマルチテーブル結合と複雑なクエリが含まれます。 4)SQL構文エラーやパフォーマンスの問題などのよくある質問は、説明コマンドとスロークエリログを介してデバッグできます。 5)パフォーマンス最適化方法には、インデックスの合理的な使用、最適化されたクエリ、およびキャッシュの使用が含まれます。ベストプラクティスには、トランザクションと準備された星の使用が含まれます

Apacheのデータベースに接続する方法 Apacheのデータベースに接続する方法 Apr 13, 2025 pm 01:03 PM

Apacheはデータベースに接続するには、次の手順が必要です。データベースドライバーをインストールします。 web.xmlファイルを構成して、接続プールを作成します。 JDBCデータソースを作成し、接続設定を指定します。 JDBC APIを使用して、接続の取得、ステートメントの作成、バインディングパラメーター、クエリまたは更新の実行、結果の処理など、Javaコードのデータベースにアクセスします。

DockerによるMySQLを開始する方法 DockerによるMySQLを開始する方法 Apr 15, 2025 pm 12:09 PM

DockerでMySQLを起動するプロセスは、次の手順で構成されています。MySQLイメージをプルしてコンテナを作成および起動し、ルートユーザーパスワードを設定し、ポート検証接続をマップしてデータベースを作成し、ユーザーはすべての権限をデータベースに付与します。

MySQLの役割:Webアプリケーションのデータベース MySQLの役割:Webアプリケーションのデータベース Apr 17, 2025 am 12:23 AM

WebアプリケーションにおけるMySQLの主な役割は、データを保存および管理することです。 1.MYSQLは、ユーザー情報、製品カタログ、トランザクションレコード、その他のデータを効率的に処理します。 2。SQLクエリを介して、開発者はデータベースから情報を抽出して動的なコンテンツを生成できます。 3.MYSQLは、クライアントサーバーモデルに基づいて機能し、許容可能なクエリ速度を確保します。

MySQLをCentos7にインストールする方法 MySQLをCentos7にインストールする方法 Apr 14, 2025 pm 08:30 PM

MySQLをエレガントにインストールするための鍵は、公式のMySQLリポジトリを追加することです。特定の手順は次のとおりです。MYSQLの公式GPGキーをダウンロードして、フィッシング攻撃を防ぎます。 mysqlリポジトリファイルを追加:rpm -uvh https://dev.mysql.com/get/mysql80-community-rease-el7-3.noarch.rpm update yumリポジトリキャッシュ:yumアップデートインストールmysql:yumインストールmysql-server startup mysql sportin

Laravelは紹介例 Laravelは紹介例 Apr 18, 2025 pm 12:45 PM

Laravelは、Webアプリケーションを簡単に構築するためのPHPフレームワークです。次のような強力な機能を提供します。インストール:Laravel CLIを作曲家にグローバルにインストールし、プロジェクトディレクトリにアプリケーションを作成します。ルーティング:ルート/web.phpのURLとハンドラーの関係を定義します。ビュー:リソース/ビューでビューを作成して、アプリケーションのインターフェイスをレンダリングします。データベース統合:MySQLなどのデータベースとのすぐ外側の統合を提供し、移行を使用してテーブルを作成および変更します。モデルとコントローラー:モデルはデータベースエンティティを表し、コントローラーはHTTP要求を処理します。

HDFSでCentosを構成するために必要な手順 HDFSでCentosを構成するために必要な手順 Apr 14, 2025 pm 06:42 PM

CENTOSシステムにHadoop分散ファイルシステム(HDFS)を構築するには、複数のステップが必要です。この記事では、簡単な構成ガイドを提供します。 1.初期段階でJDKをインストールする準備:すべてのノードにJavadevelopmentKit(JDK)をインストールすると、バージョンはHadoopと互換性がある必要があります。インストールパッケージは、Oracleの公式Webサイトからダウンロードできます。環境変数構成: /etc /プロファイルファイルを編集し、JavaおよびHadoop環境変数を設定して、システムがJDKとHadoopのインストールパスを見つけることができるようにします。 2。セキュリティ構成:SSHパスワードなしログインSSHキーを生成する:各ノードでSSH-KeyGenコマンドを使用する

Centosはmysqlをインストールします Centosはmysqlをインストールします Apr 14, 2025 pm 08:09 PM

CentOSにMySQLをインストールするには、次の手順が含まれます。適切なMySQL Yumソースの追加。 yumを実行して、mysql-serverコマンドをインストールして、mysqlサーバーをインストールします。ルートユーザーパスワードの設定など、MySQL_SECURE_INSTALLATIONコマンドを使用して、セキュリティ設定を作成します。必要に応じてMySQL構成ファイルをカスタマイズします。 MySQLパラメーターを調整し、パフォーマンスのためにデータベースを最適化します。

See all articles