}
クラス 英語実装 Hello{
public function Say_hello(){
echo "Hello!";
}
//特定の製品 2
class Chinese 実装 Hello{
public functionsay_hello(){
echo "Hello";
}
}
使用法:
コードをコピー
コードは次のとおりです。
if(!empty($_GET['t' ])){
switch($_GET['t']){
ケース 1: $temp=new EnglishSpeaker();
break; temp=new ChineseSpeaker();
break;
$ man=$temp->assignSpeaker();
3. 抽象的な工場モデルの製品ファミリー。各エンティティ工場は製品ファミリー (1、2...) の製品を担当し、各製品ファミリーはいくつかの異なるカテゴリ (A、B...) に分類されます。あるエンティティ ファクトリを見ると、実際はファクトリ メソッド パターンです
上記の hello の例にさらに多くの式、通常の式と歌う式 (2 製品ファミリー) がある場合
コードをコピーします コードは次のとおりです。
//抽象ファクトリー
抽象クラス Speaker{
const NORMAL =1;
const SING =2;
抽象関数 assignSpeaker($flag_int)
}
//具体的なファクトリー 1
クラス EnglishSpeaker extends Speaker {
public function assignSpeaker($flag_int){
switch($flag_int){
case self::NORMAL:
return new NormalEnglish();
case self::SING:
break; }
}
//特定のファクトリー 2
class ChineseSpeaker extends Speaker{
public function assignSpeaker($flag_int){
switch($flag_int){
case self::NORMAL:
return new Normal Chinese() ; self::SING:
return new Sing Chinese();
break;
}
}
//抽象積
インターフェース Hello{
function Say_hello();
//具体的な積 A1
class NormalEnglish 実装
public functionsay_hello(){
echo "Hello!";
}
}
//特定の製品 B1
class Normal Chinese は Hello{
public function Say_hello(){
echo "Hello!";
}
}
/ /特定の製品 A2
class SingEnglish は Hello{
public functionsay_hello(){
echo "ああ、ジングルベル、ジングルベル、ハロー! ハロー! ハロー!"
}
}
//特定の製品 B2
クラス Sing Chinese は実装します。 Hello{
public functionsay_hello(){
echo "Ding Ding Dong, Ding Ding Dong, Hello! Hello! Hello!";
}
}
使用:
コードをコピー
コードは次のとおりです:
//プログラムのビジネスロジックに従って特定のファクトリーを決定します
switch($_GET[' language']){ case 1: $temp=new EnglishSpeaker() break; temp= new ChineseSpeaker(); break; }
//プログラムのビジネスロジックに従って特定の製品を決定し、特定のファクトリーを気にする必要がなく、保守性が向上します
$man=$temp ->assignSpeaker( $_GET['style' ]);
//製品を使用するとき、それがどの製品であるかを気にする必要はありません
4プロトタイプ (プロトタイプ)
クローンを使用して既存の特定の製品をコピーし、それを指定します。製品カテゴリ自体が独自の生成の基礎になります。
http://www.bkjia.com/PHPjc/326063.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/326063.html技術記事
1. シングルトン モード (シングルトン) アプリケーションに一度に 1 つのオブジェクトのみが含まれる場合、このオブジェクトはグローバル変数を置き換えるために使用されます。 ?php r...。