


インターフェイス抽象クラス PHP で「インターフェイス指向プログラミング」と「結合メソッド」を実装するためのインターフェイス、抽象クラス、および通常の基本クラスの使用についての簡単な説明。
コードをコピーします コードは次のとおりです:
/*
私自身の読書の便宜のために出版されており、専門家の指導も歓迎しています。
[ヒント] この例は、エラーなしでテストに合格しました。
【シナリオ設計】
コンピューターのマザーボードの IDE インターフェイスをシミュレートします。たとえば、マザーボードがアクセスできるストレージには、光学ドライブ、ハードディスク、フラッシュ メモリなどが含まれます。
便宜上、これらの異なるストレージに同じインターフェースを設定する必要があります。
この例では、独自のアクセス方法を持つ前例のないエイリアン メモリもアクセスのためにマザーボードに追加されることを想定しています。
そのため、結合された設計パターンを採用する必要があります。
[この例の主な説明]
1. いわゆる「インターフェイス」モードは、インターフェイス、抽象クラス、および一般クラスの継承によって実現されます。
A. サブクラス オブジェクトを親クラスとして使用できます。サブクラスは特別な親クラスであるため、オブジェクトです。
B. この3つの実装方法では、インターフェース、抽象クラス、一般クラスの継承の基底クラスの書き方に注目してください!
2. インターフェースモードは本当に契約です!
3. プログラミングの「結合設計パターン」!
*/
//------------------------------------------ ------ ------------------------
/*[方法 1] インターフェース実装メソッド:*/
interface readandwrite{
関数 read();
関数 write();
クラス マザーボード{
関数 __construct(readandwrite $obj){
$this->storage=$obj;
関数 read(){
$this->storage->read();
}
function write(){
$this->storage->write();
}
class flash は readandwrite{
function __construct( ){
echo "I フラッシュメモリです:
";
}
function read(){
echo "データの読み取りを開始します...
";
}
function write(){
echo "データの保存を開始します...
";
}
}
class yingpanimplements readandwrite{
function __construct(){
echo "私はハードディスクです:
"; function read(){
echo "データの読み取りを開始...
";
}
function write(){
echo "データの保存を開始...
"
}
}
class disco readandwrite{
function __construct(){
echo "私は CD です:
";
}
function read(){
echo "データの読み取りを開始します...
";
function write(){
echo "データの保存を開始します...
"
}
}
//------ ------- ------------------------------------------- ---
/*[メソッド 2] 抽象クラスの実装:
abstract function read();
abstract function write();
}
function __construct(readandwrite $obj){
$this- >storage=$obj;
}
関数 read(){
$this->storage->read();
}
function write(){
$this->storage->write() ;
}
}
class flash extends readandwrite{
function __construct(){
echo "私は flash:
";
}
function read(){
echo "データの読み取りを開始します...
}
function write(){
echo "データの保存を開始...
";
}
}
class yingpan extends readandwrite {
function __construct(){
echo "私はハードディスクです:
";
}
function read(){
echo "データの読み取りを開始...
";
}
function write(){
echo "データの保存を開始...
}
}
class disco extends readandwrite{
function __construct(){
echo "私は CD です:
";
}
function read(){
echo "データの読み取りを開始します...
";
}
function write(){
echo "データの保存を開始します...< ;hr>";
}
}
*/
//----------- ------------------------ ------------------------ -------
//[方法 3] 一般的なクラス継承の実装方法:
/ *
class readandwrite{
function read(){
echo "reading...." ;
}
function write(){
echo "書き込み....."
}
}
class motherboard{
function __construct(readandwrite $obj){
$this->storage=$obj;
}
関数 read(){
$this->storage->read();
}
関数 write(){
$this->storage-> write();
}
}
class flash extends readandwrite{
function __construct( ){
echo "私はフラッシュメモリです:
";
}
function read(){
echo "データの読み取りを開始します。 .
";
}
function write(){
echo "データの保存を開始...
";
}
}
class yingpan extends readandwrite{
function __construct(){
echo "I私はハードディスクです:
";
}
function read(){
echo "データの読み取りを開始します...
";
}
function write(){
echo "データの保存を開始します。 .
";
}
}
class disco extends readandwrite{
function __construct(){
echo "私は CD:
";
}
function read(){
echo "読み始めるデータ...
";
}
function write(){
echo "データの保存を開始...
";
}
}
*/
//------ -------------------------------------------------- - ------------
/*
[結合モード]
結合モードは、規格の異なる 2 つのクラスを結合することです (この場合、インターフェイス、抽象クラス、通常の基底クラス、エイリアン ストレージは異なるアクセス方法)、
パッチコードと同じように、同じ標準を達成するために中間コンバーターを介して - この例では、未知のクラスの Rdata メソッドと Wdata メソッドが、これと同じ結果を達成するために読み取りメソッドと書き込みメソッドに変換されます
例 インターフェイス、抽象クラス、および通常の基本クラスは同じアクセス メソッドを持ちます。この例の中間コンバータは
Apdater クラスです。
PHPではクラスは1つしか継承できませんが、インターフェースは複数継承できるため、3つの結合方法が生成されました:
方法1: 中間コンバータApdaterクラスは抽象クラスまたは通常の基底クラスを継承しますが、PHPは1つのクラスしか継承できないため、そこで、Apdaterクラスにエイリアンメモリクラスの未知のオブジェクトを定義し、継承した抽象クラスや通常の基底クラスのアクセスメソッドをオーバーロードする方法を用いて、同じアクセスメソッドを実現するようにアクセスメソッドを変換します。
方法 2: 中間コンバーター Apdater クラスは、不明なエイリアン メモリ クラスとインターフェイスを継承します。このとき、Apdater クラスのアクセス メソッド (parent::Rdata() およびparent::Wdata() - PHP) を直接使用できます。 neutron クラスの親クラスのメソッドを呼び出すメソッド) を実装し、同じアクセスメソッドの目的を達成するためにアクセスメソッドを変換する
インターフェース指定メソッドを実装します。
方法 3: インターフェースを継承 (実装) する点を除いて、方法 1 と同じです。 - -----------------------------------------------
/ *
【方法1】
*/
/*
class unknow{
function __construct(){
echo "私は地球人に知られていないエイリアンストレージです。メソッド:
";
}
function Rdata(){
echo "今読んでいます...
";
}
function Wdata() {
echo "今書いています...
"
}
}
class Adpater extends readandwrite{
function __construct(unknow $x){
$this->obj = $x;
}
関数 read(){
$this->obj->Rdata();
関数 write(){
$this->obj->Wdata(); }
*/
//------------------------------------------ ----- ----------------------------
/*
【方法2】
class unknown{
function __construct() {
echo "< ;font color=#ff0000>私は地球人には知られていない異星人のストレージです。私は地球のストレージとは異なるアクセス方法を持っています:
";
}
function Rdata(){
echo "今読んでいます...
";
}
function Wdata(){
echo "今書いています...
"
}
}
class Adpater extends不明な実装は readandwrite{
function read(){
parent::Rdata();
}
function write(){
parent::Wdata();
}
}
*/
//- ----- -------------------------------------- ----- ----------------
/*
【方法3】
*/
class unknow{
function __construct(){
echo "私は地球人には知られていない異星人のストレージです。私は地球のストレージとは異なるアクセス方法を持っています:
";
}
function Rdata(){
echo "今読んでいます...
}
function Wdata(){
echo "今書いています...
";
}
}
class Adpater は readandwrite を実装します{
private $obj;
function __construct(unknown $x ){
$this->obj=$x;
}
関数 read(){
$this->obj->Rdata();
}
$this->obj ->Wdata();
}
}
//[プログラム本体呼び出し]
echo "オブジェクト指向プログラミング - インターフェイス強力>
";
$storage1=新しいフラッシュ();
$コンピュータ=新しいマザーボード($storage1);
$コンピュータ->読み取り();
$コンピュータ->書き込み();
$ storage2=新しいyingpan();
$computer=新しいマザーボード($storage2);
$computer->
$storage3=新しいディスコ(); =新しいマザーボード($storage3);
$computer->write();
$apdaterx=新しいアダプター($un_storage);コンピューター=新しいマザーボード($apdaterx);
$コンピューター->書き込み();
以上は、PHP のインターフェイス抽象クラスの簡単な紹介であり、インターフェイス、抽象クラス、および通常の基底クラスを使用して「インターフェイス指向プログラミング」と「結合メソッド」を実装するためのインターフェイス抽象クラスの内容も含めて説明します。 PHP チュートリアルに興味がある人は役に立つでしょう。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。
