PHPデザインパターン Template(テンプレートパターン)_PHPチュートリアル
相続関係はその欠点により、専門家によって「悪」のレッテルを貼られてきました。 「継承関係の代わりに委任関係を使用してください」、「抽象クラスの継承の代わりにインターフェイス実装を使用してみてください」、およびその他の専門家の警告を受けて、私たち新人は「継承を別の観点から見て」みましょう。実際、継承には依然としてそれ自体の多くの利点があります。ただ、誰からも虐待されることの欠点がより明らかになるように思えます。継承関係を合理的に使用することは、システム設計において依然として良い役割を果たすことができます。テンプレートメソッドパターンは使用例の一つです。
GOF は、一部のステップをサブクラスに延期しながら、テンプレート メソッド パターンの動作中のアルゴリズムのスケルトンを定義します。アルゴリズムの構造を変更せずに、サブクラスがアルゴリズムの特定のステップを再定義できるようにします。ここでのアルゴリズムの構造は、ニーズに応じて設計されたビジネス プロセスとして理解できます。具体的な手順はリンクにありますが、内容は異なる場合があります。
テンプレート メソッド パターンも、システムへの変更の影響を賢く解決するように設計されていることがわかります。テンプレート方式を使用すると、システムの拡張性が向上し、システムへの変更の影響が最小限に抑えられます。これは次の例で明らかです。
/**
* テンプレート パターン
*
* 操作のアルゴリズム スケルトンを定義し、一部のステップをサブクラスに延期します。これにより、サブクラスはアルゴリズムの構造を変更せずにアルゴリズムの特定のステップを定義できます
*
*/
abstract class TemplateBase
{
public function Method1()
{
echo "abstract Method1< ;br/> ;";
}
public function Method2()
{
echo "abstract Method2
";
}
public function Method3()
{
echo "abstract Method3
パブリック関数 doSomeThing()
{
$this->Method1();
$this->Method2();
$this->Method3();
}
}
クラスTemplateObject extends TemplateBase
{
}
class TemplateObject1 extends TemplateBase
{
public function Method3()
{
echo "TemplateObject1 Method3
"
}
}
class TemplateObject2 extends TemplateBase
{
パブリック関数Method2 ()
{
echo "TemplateObject2 Method2
"
}
}
$objTemplate = new TemplateObject();
$objTemplate2 = new TemplateObject2() ) ;
$objTemplate->doSomeThing();
$objTemplate2->doSomeThing();
AbstractClass (抽象クラス):それらを実装するには特定のサブクラスが必要であり、アルゴリズムのスケルトンを定義するにはテンプレート メソッドも必要です。このテンプレート メソッドは、前の抽象メソッドを呼び出すだけでなく、その使命を完了できる限り、他の操作を呼び出すこともできます。
ConcreteClass (具象クラス): 親クラスに抽象メソッドを実装して、特定のサブクラスに関連するアルゴリズムのステップを完了します。
アルゴリズムの変更されていない部分を一度に実装し、変数の動作はそのままにするサブクラス。
コードの重複を避けるために、各サブクラスの共通の動作を抽出して共通の親クラスに集中する必要があります。実際、これはコーディングの良い習慣であると言えます。
コントロールサブクラス拡張。テンプレート メソッドは特定のポイントでのみ操作を呼び出すため、そのポイントでのみ展開が可能です。たとえば、上記の runBare() メソッドは、runTest の前に setUp メソッドのみを適用します。テンプレート メソッドで定義されたフレームワークをサブクラスに変更させたくない場合は、2 つの方法で変更できます。1 つ目は、テンプレート メソッドを API に反映しないことです。2 つ目は、テンプレート メソッドを Final にすることです。
テンプレート メソッド パターンを使用すると、コードのパブリックな動作を抽出して再利用の目的を達成できることがわかります。さらに、テンプレート メソッド パターンでは、親クラスのテンプレート メソッドがサブクラスの特定の実装を制御します。この方法では、サブクラスを実装するときにビジネス プロセスについてあまり知る必要はありません。
http://www.bkjia.com/PHPjc/323607.html
www.bkjia.com

phpssionscanStorestrings、numbers、arrays、andobjects.1.strings:textdatalikeusernames.2.numbers:integersorfloatsforcounters.3.arrays:listslikeshoppingcarts.4.objects:complextructuresthataresialized。

tostartaphpsession、outsession_start()atthescript'sbeginning.1)placeitbe foreanyouttosetthesscookie.2)usesionsionsionsionserdatalikelogintatussorshoppingcarts.3)再生セッションインドストップレベントフィックスアタック

セッション再生とは、新しいセッションIDを生成し、セッション固定攻撃の場合にユーザーが機密操作を実行するときに古いIDを無効にすることを指します。実装の手順には次のものが含まれます。1。感度操作を検出、2。新しいセッションIDを生成する、3。古いセッションIDを破壊し、4。ユーザー側のセッション情報を更新します。

PHPセッションは、アプリケーションのパフォーマンスに大きな影響を与えます。最適化方法には以下が含まれます。1。データベースを使用してセッションデータを保存して応答速度を向上させます。 2。セッションデータの使用を削減し、必要な情報のみを保存します。 3.非ブロッキングセッションプロセッサを使用して、同時実行機能を改善します。 4.セッションの有効期限を調整して、ユーザーエクスペリエンスとサーバーの負担のバランスを取ります。 5.永続的なセッションを使用して、データの読み取り時間と書き込み時間を減らします。

phpsesionsareserver-side、whilecookiesareclient-side.1)Sessionsionsionsoredataontheserver、aremoresecure.2)cookiesstoredataontheclient、cookiestoresecure、andlimitedinsizeisize.sesionsionsionivationivationivationivationivationivationivationivate

phpidentifiesauser'ssessionsingsinssessionCookiesIds.1)whensession_start()iscalled、phpgeneratesauniquesidstoredsored incoookienadphpsessidontheuser'sbrowser.2)thisidallowsphptortorieSessiondatadata fromthata

PHPセッションのセキュリティは、次の測定を通じて達成できます。1。session_regenerate_id()を使用して、ユーザーがログインまたは重要な操作である場合にセッションIDを再生します。 2. HTTPSプロトコルを介して送信セッションIDを暗号化します。 3。Session_Save_Path()を使用して、セッションデータを保存し、権限を正しく設定するためのSecure Directoryを指定します。

phpsessionFilesToredInthededirectoryspecifiedBysession.save_path、通常/tmponunix-likesystemsorc:\ windows \ temponwindows.tocustomizethis:1)uesession_save_path()tosetaCustomdirectory、ensuringit'swritadistradistradistradistradistra


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

WebStorm Mac版
便利なJavaScript開発ツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ホットトピック









