ホームページ  >  記事  >  バックエンド開発  >  PHP インターフェースと抽象的な学習例_PHP チュートリアル

PHP インターフェースと抽象的な学習例_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:22:31766ブラウズ

PHP インターフェースと抽象化の学習例

インターフェースと抽象化について学ぶたびに混乱し、それらの違いや用途がわかりません。今日は、この本を読んで自分の考えを整理します。これが、初めて PHP を学ぶ友人に役立つことを願っています。

1.phpインターフェースクラス:interface

実際、それらの役割は非常に単純です。多くの人々が一緒にプロジェクトを開発するとき、彼らは皆、ある関数の実装メソッドの名前をどうやって知ることができるのでしょうか? PHP インターフェース クラスが機能するとき、インターフェース クラスを定義するとき、そのクラス内のメソッドは次のようなサブクラスによって実装される必要があります。

コードは次のとおりです:

インターフェースショップ

{

パブリック関数 buy($gid);

パブリック関数 sell($gid);

パブリック関数 view($gid);

}

shop インターフェイス クラスを宣言し、buy、sell、view の 3 つのメソッドを定義します。次に、このクラスを継承するすべてのサブクラスは、これらの 3 つのメソッドのいずれかを実装する必要があります。サブクラスがこれらの単語を実装していない場合、サブクラスは実行されません。実際、インターフェイス クラスは、端的に言えば、クラスのテンプレートであり、クラスの規則です。このカテゴリに属する​​場合は、どのような方法であっても、私の規則に従わなければなりません。それをどうするかはあなた次第です:

コードは次のとおりです:

クラスBaseShopはShopを実装します

{

パブリック関数 buy($gid)

{

echo('ID:'.$gid.'の製品を購入しました。');

}

パブリック関数 sell($gid)

{

echo('ID: '.$gid.' の商品を販売しました。');

}

パブリック関数ビュー($gid)

{

echo('ID: '.$gid.' の商品を閲覧しました。');

}

}

考えてみてください。多くの人が共同作業する大規模なプロジェクトでは、インターフェイス クラスがあると非常に便利です。そうすることで、特定の関数のメソッド名が何であるかを他の人に尋ねる必要がなくなります。 、私は仕方がありません。

結論:インターフェースクラスはクラスのリーダーであり、方向性を示すものであり、サブクラスは指定されたメソッドを完了しなければなりません。

2.php抽象クラス:abstract

実際、抽象クラスはインターフェイス クラスと部分的に似ています。抽象クラスの役割は、クラスの多くが繰り返し記述している多くのメソッドを使用していることがわかった場合に、抽象クラスの使用を検討できることです。クラスを書き直すことはできないのでしょうか? パブリック クラスごとに、このパブリック クラスをインスタンス化し、同じメソッドを呼び出します。」 それはここでは可能です。実際、これは抽象クラスが行うことですが、省略されています。インスタンス化のステップにより、このクラスのメソッドを直接呼び出すのと同じくらい便利になり、このメソッドをオーバーロードすることもできます。例:

コードは次のとおりです:

抽象クラスBaseShop

{

パブリック関数 buy($gid)

{

echo('ID: '.$gid.'の製品を購入しました。');

}

パブリック関数 sell($gid)

{

echo('ID: '.$gid.' の商品を販売しました。');

}

パブリック関数ビュー($gid)

{

echo('ID: '.$gid.' の商品を閲覧しました。');

}

}

クラス BallShop は BaseShop を拡張します

{

var $itme_id = null;

パブリック関数__construct()

{

$this->itme_id = 2314;

}

パブリック関数open()

{

$this->sell($this->itme_id);

}

}

上記と同様にstoreクラスを定義し、そのbuy、sell、viewの各部分を抽出し、これらのメソッドを抽象クラスに実装し、それを継承するサブクラスが自動的にこれらのメソッドを取得し、サブクラスを取得する例を示します。独自の処理を行い、コードの重複を導入し、再利用性を向上させます。

最後にまとめると、抽象クラスはクラスのサービスプロバイダーです。必要に応じてサービスを提供する必要はありません。それは自分自身です。

http://www.bkjia.com/PHPjc/847208.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/847208.html技術記事 PHP インターフェイスと抽象化の学習例 インターフェイスと抽象化について学ぶたびに混乱し、両者の違いや用途がわかりません。今日は本を持って自分の考えを整理しています…
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。