国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ホームページ php教程 php手冊 PHPの「Simple Factory Pattern」のサンプルコード説明

PHPの「Simple Factory Pattern」のサンプルコード説明

Jun 13, 2016 am 11:58 AM
php コード による 意味 工場 抽象的な 方法 モデル 使用 単純 説明する

単純なファクトリ パターン:
①抽象基本クラス: クラス內(nèi)にいくつかの抽象メソッドを定義し、サブクラスに実裝します
②抽象基本クラスを継承するサブクラス: 基本クラスに抽象メソッドを?qū)g裝します
③ ファクトリ クラス: 使用オブジェクトをインスタンス化します

記事を読んだ後、この図をもう一度見ると、効果がさらに良くなります



カプセル化メソッドの使用

コードをコピー コードは次のとおりです。


class Calc{
/**
* 計算結(jié)果
*
* @param int|float $num1
* @param int|float $num2
* @param string $operator
* @return int|float
*/
public function Calculate($num1,$num2,$operator){
try {
$result=0; >switch ( $operator){
case ' ':
$result= $num1 $num2;
case '-':
$result= $num1-$num2;
ブレーク;
ケース '*':
$result= $num1*$num2;
ブレーク;
ケース '/':
if ($num2==0) {
throw new Exception("除數(shù)を 0 にすることはできません");
$result= $num1/$num2;
return $result; >}catch ( Exception $e){
echo "入力が間違っています:".$e->getMessage();
}
}
}
$test=new Calc( );
// echo $test->calculate(2,3,' ');//Print: 5
echo $test->calculate(5,0,'/');//印刷: you 間違った入力: 除數(shù)を 0 にすることはできません


利點: 上記のコードは、include クラスが含まれている限り、他のページでも使用できます。気軽に使ってください
欠點: 柔軟な拡張と保守ができない
例: 「剰余」演算を追加したい場合は、switch ステートメント ブロックに分岐ステートメントを追加する必要があり、コードは以下のように変更しました
分岐ステートメントを追加します


コードをコピーします

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

class Calc{ public function Calculate($num1,$ num2,$operator){ try { $result=0;

switch ($operator){

//。 ..省略されました...
case '%':
$result= $num1%$num2;
break
//...省略されました...
}
}catch (Exception $e){
echo "入力が間違っています:".$e->getMessage();
}
}
?>

コード分析: 上記の方法を使用して電卓に新しい関數(shù)演算を追加すると、次のような欠點があります
① 「新しい関數(shù)を追加」するには、元のコード ブロックを変更する必要があり、コード ブロックが変更される可能性があります。 、誤って元のコードを修正しました
② 追加する関數(shù)が多い場合 (例: 'べき乗'、'平方根'、'対數(shù)'、'三角関數(shù)'、'統(tǒng)計')、または追加するプログラマーAnd、Or、Not、Xor などの特定の計算関數(shù)では、switch ステートメントに N 個の分岐ステートメントを追加する必要があります。計算関數(shù)に 20 または 30 の case 分岐ステートメントがある場合、コードが 1 畫面を超えることを想像してください。コードの可読性が大幅に低下するだけでなく、小さな関數(shù)を追加するには、関連しない他の関數(shù)も追加する必要があります。説明: これはプログラムの実行効率を大幅に低下させます
解決策: OOP 継承とポリモーフィックなアイデアを採用します
単純なファクトリー パターンの初期実裝


コードをコピーします

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


/**

* 操作クラス * 抽象メソッドが含まれるため、クラスは抽象クラスとして宣言する必要があります */ abstract class Operation{ //抽象メソッドには関數(shù)を含めることはできませんbody

abstract public function getValue($num1,$num2);//サブクラスがこの関數(shù)関數(shù)を?qū)g裝する必要があることが強く要求されます

}
/**
* 追加クラス
*/
class OperationAdd extends Operation {
public function getValue($num1,$num2){
return $num1 $num2;
}
}
/**
* 減算クラス
*/
class OperationSub extendsオペレーション {
public function getValue($num1,$num2){
return $num1-$num2;
}
}
/**
* 乗算クラス
*/
class OperationMul extends Operation {
public function getValue($num1,$num2){
return $num1*$num2;
}
}
/**
* 部門クラス
*/
クラスOperationDiv extends Operation {
public function getValue($num1,$num2){
try {
if ($num2==0){
throw new Exception("除數(shù)を 0 にすることはできません") ;
}else {
return $num1/$num2;
}catch (例外 $e){
echo "エラー メッセージ:".$e->getMessage() ;
}
}
}
?>


ここではまず、仮想基底クラスを宣言し、メソッドを指定します。サブクラスは基本クラス (getValue()) に実裝する必要があります。
分析: オブジェクト指向の継承機能を使用すると、「べき乗」、「平方根」、「対數(shù)」などの元のプログラムを簡単に拡張できます。 、「三角関數(shù)」、「統(tǒng)計」など。



コードをコピー

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


/**
* 剰余 (剰余) を求める
*
*/
class OperationRem extends Operation {
public function getValue($num1,$num2){
return $num1% $num12;
}
}
?>


必要なのは、別のクラス (このクラスは仮想基本クラスを継承します) を作成し、クラス內(nèi)の対応する関數(shù)を完了することだけです。 (例:電力計算)、結(jié)合度が大幅に減少するため、將來のメンテナンスと拡張が容易になります
まだ未解決の問題があり、それは、プログラムがオペレータの入力に従って対応するオブジェクトをインスタンス化する方法です。ユーザー?
解決策: 別のクラスを使用してインスタンス化プロセスを?qū)g裝します。このクラスはファクトリーです。
コードは次のとおりです。

コードをコピーしますコードは次のとおりです:


/**
* エンジニアリングクラス、主にオブジェクトの作成に使用されます
* 機能: 入力された操作シンボルに従って、ファクトリは適切なオブジェクトをインスタンス化できます
*
*/
class Factory{
public static function createObj($operate){
switch ($operate ){
case ' ':
return new OperationAdd();
case '-':
return new OperationSub();
case ' *':
return new OperationSub();
case '/':
return new OperationDiv();
}
}
$test=Factory::createObj('/');
$result=$test->getValue(23,0);
echo $result; ?>


元の記事、転載元を明記してください: http://www.cnblogs.com/hongfei/

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當する法的責(zé)任を負いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

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 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

コメントする理由:PHPガイド コメントする理由:PHPガイド Jul 15, 2025 am 02:48 AM

phphastthreecommentStyles://,#forsingle-lineand/.../formulti-line.usecommentstoexplainwhycodeexists、whatittodo/fixmeitemsanddisablecodecodemcodecodecodecodemprianydedebugging.avoidoversingingsingingsingingsingingsingingsingingsingingsimmentingsimmentingsimplelatic.decratecentecentic.

WindowsにPHPをインストールする方法 WindowsにPHPをインストールする方法 Jul 15, 2025 am 02:46 AM

WindowsにPHPをインストールするための重要な手順には次のものがあります。1。適切なPHPバージョンをダウンロードして解凍します。 apacheでthreadsafeバージョンまたはnginxを使用して非threadsafeバージョンを使用することをお勧めします。 2。php.iniファイルを構(gòu)成し、php.ini-developmentまたはphp.ini-productionにphp.iniに名前を変更します。 3.コマンドラインの使用のために、システム環(huán)境変數(shù)パスにPHPパスを追加します。 4. PHPが正常にインストールされているかどうかをテストするには、コマンドラインを介してPHP-Vを?qū)g行し、組み込みサーバーを?qū)g行して解析機能をテストします。 5.Apacheを使用する場合、httpd.confでPを構(gòu)成する必要があります

PHP構(gòu)文:基本 PHP構(gòu)文:基本 Jul 15, 2025 am 02:46 AM

PHPの基本的な構(gòu)文には4つのキーポイントが含まれています。1。PHPタグを終了する必要があり、完全なタグの使用が推奨されます。 2。エコーと印刷は、一般的に出力コンテンツに使用されます。その中には、エコーは複數(shù)のパラメーターをサポートし、より効率的です。 3。注釈方法には、コードの読みやすさを改善するための//、#、//が含まれます。 4.各ステートメントはセミコロンで終了する必要があり、スペースとラインブレークは実行に影響を與えず、読みやすさに影響します。これらの基本的なルールを習(xí)得すると、明確で安定したPHPコードの作成に役立ちます。

Python他の例 Python他の例 Jul 15, 2025 am 02:55 AM

PythonのIfelseステートメントを書くための鍵は、論理構(gòu)造と詳細を理解することです。 1.インフラストラクチャは、條件が確立されている場合、コードを?qū)g行することです。 2.多條件判斷はElifで実施され、順次実行され、満たされると停止します。 3。ネストされている場合、さらに區(qū)畫の判斷に使用されている場合、2つの層を超えないことをお勧めします。 4.単純なシナリオでは、単純なifelseを置き換えるために、三元式を使用できます。インデント、條件付き順序、論理的完全性に注意を払うことによってのみ、明確で安定した判斷コードを書くことができます。

PHP 8インストールガイド PHP 8インストールガイド Jul 16, 2025 am 03:41 AM

ubuntuにphp8をインストールする手順は次のとおりです。1。ソフトウェアパッケージリストを更新します。 2。PHP8および基本コンポーネントをインストールします。 3.バージョンを確認して、インストールが成功していることを確認します。 4.必要に応じて追加のモジュールをインストールします。 Windowsユーザーは、ZIPパッケージをダウンロードおよび解凍し、構(gòu)成ファイルを変更し、拡張機能を有効にし、環(huán)境変數(shù)へのパスを追加できます。 MacOSユーザーは、HomeBrewを使用してインストールし、TAPの追加、PHP8のインストール、デフォルトバージョンの設(shè)定、バージョンの検証などの手順を?qū)g行することをお勧めします。インストール方法は異なるシステムで異なりますが、プロセスは明確であるため、目的に応じて適切な方法を選択できます。

PHPとは何ですか?それは何に使用されますか? PHPとは何ですか?それは何に使用されますか? Jul 16, 2025 am 03:45 AM

phpisaserver-sidesscriptinglanguageUsedforwebdevelopment、特にfordynamicwebsitesandcmsplatformslikewordpress.itrunsontheserver、processesdata、interactswithdatabases、andsendshtmltobrowsers.commonusesincludeurauthingication、e-commerceplatoblatoblotoftoflotfontiblotionforthentication

最初のPHPスクリプト:実用的な紹介 最初のPHPスクリプト:実用的な紹介 Jul 16, 2025 am 03:42 AM

最初のPHPスクリプトの書き始め方法は?まず、ローカル開発環(huán)境をセットアップし、XAMPP/MAMP/LAMPをインストールし、テキストエディターを使用してサーバーの実行原則を理解します。第二に、hello.phpというファイルを作成し、基本コードを入力してテストを?qū)g行します。第三に、PHPとHTMLを使用して動的なコンテンツ出力を?qū)g現(xiàn)することを?qū)Wびます。最後に、セミコロンの欠落、引用の問題、ファイル拡張エラーなどの一般的なエラーに注意し、デバッグのエラーレポートを有効にします。

PHPでファイル操作(読書/執(zhí)筆)をどのように処理しますか? PHPでファイル操作(読書/執(zhí)筆)をどのように処理しますか? Jul 16, 2025 am 03:48 AM

tohandlefileoperationsinphp、useappurcefunctionsandmodes.1.toreadafile、usefile_get_contents()forsmallfilesorfgets()inaloop forline-llineprocessing.2.towritetoafile、usefile_put_contents()forsimplewritesorappending withthefile_appendflag、orfwrite()w

See all articles