PHPファクトリーパターンの例
Jun 28, 2018 pm 04:11 PM* シングルトン モード: 単一タイプの一意のインスタンス オブジェクトを作成するために使用されます
* ファクトリ モード: 複数のタイプの複数のインスタンス オブジェクトを作成するために使用されます
//形状クラスの宣言
class Shape { //声明静态方法create,根据容器形状不同,创建不同图形类的实例 public static function create($type,array $size=[]) { //检测形状? switch ($type) { //长方形 case 'rectangle': return new Rectangle($size[0],$size[1]); break; //三角形 case 'triangle': return new Triangle($size[0],$size[1]); break; } } }
ログイン後にコピー
//四角形クラスを宣言します
class Rectangle { private $width; //宽度 private $height; //高级 public function __construct($witch,$height) { $this->width = $witch; $this->height = $height; } //计算长方形面积: 宽 * 高 public function area() { return $this->width * $this->height; } }
ログイン後にコピー
//三角形クラスを宣言します
class Triangle { private $bottom; //底边 private $height; //边长 public function __construct($bottom,$height) { $this->bottom = $bottom; $this->height = $height; } //计算三角形面积: (底 * 高) / 2 public function area() { return ($this->bottom * $this->height)/2; } }
ログイン後にコピー
//従来の new キーワードを使用する代わりに、静的メソッドを使用して形状クラスをインスタンス化します
//さまざまな形状タイプのパラメータに従って、さまざまなクラスをインスタンス化し、さまざまなオブジェクトを生成します
$rectangle = Shape::create('rectangle',[10,30]); echo '长方形的面积是'.$rectangle->area(); echo '<hr>'; $triangle = Shape::create('triangle',[20,50]); echo '三角形的面积是'.$triangle->area();
ログイン後にコピー
以上がPHPファクトリーパターンの例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

人気の記事
レポ:チームメイトを復活させる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
1週間前
By 尊渡假赌尊渡假赌尊渡假赌
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD

人気の記事
レポ:チームメイトを復活させる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
1週間前
By 尊渡假赌尊渡假赌尊渡假赌
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD

ホットな記事タグ

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

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

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

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

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

ホットトピック
Gmailメールのログイン入り口はどこですか?
7302
9


Java チュートリアル
1622
14


CakePHP チュートリアル
1342
46


Laravel チュートリアル
1259
25


PHP チュートリアル
1207
29



Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法
