タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

PHPとデザインパターンに関するmasudaKのブックマーク (4)

  • 【PHPで学ぶデザインパターン入門】第5回 Factoryパターン | 株式会社LIG(リグ)|DX支援・システム開発・Web制作

    こんにちは、王です。 【PHPで学ぶデザインパターン】第5回はFactoryパターンのご紹介となります。 Factoryパターンの考え方は実に簡単です。「クラスのインスタンス化業務を肩代わりしてくれるオブジェクト」を導入していれば「Factoryパターン」と言っていいのです。 要はクラスのインスタンス化を行う時に、自分でnew TheClass()するのではなく、factory.create('the_class')のように、「誰か」に代わりにやってもらうのです。その「誰か」が「Factory」です。いわば、オブジェクトを作るオブジェクトですね。「オブジェクトの製造所」 → 「Factory」というわけです。 インスタンス化で複雑なオプションが必要なときに活かせるパターンです。逆に言えば、インスタンス化がさほど難しくない場合には適用すべきではありません。必要以上にアプリケーションが複雑化す

    【PHPで学ぶデザインパターン入門】第5回 Factoryパターン | 株式会社LIG(リグ)|DX支援・システム開発・Web制作
  • やはりあなた方のDependency Injectionはまちがっている。 — A Day in Serenity (Reloaded) — PHP, FuelPHP, Linux or something

    今日はPHP界隈で大人気のDependency Injectionと、それに関連する用語について整理しておこうと思います。 以下のような状況があるのではないか?と思ったからです。 多くのPHPユーザがDependency Injection(DI)をよくわかっていない、あるいは正確に説明できません。 そして、デザインパターンである「DIパターン」とDIをサポートするツールである「DIコンテナ」を混同しています。 また、「DIパターン」と「サービスロケータパターン」をうまく区別できていません。 Dependency Injectionとは何か? Dependency Injectionとは「Dependency」を「Injection」するというデザインパターンです。 日語では何故か「依存性の注入」と訳されており、これが混乱の元ではないかと思います。 日語で「依存性」と言うと、「依存性は

  • ハタさんのブログ : PHP開発者のためのデザインパターン。Controller

    はてブコメントにて、「シリーズ化して欲しい」とあったので、もう少し書いてみます。 今回紹介するパターンは、Controllerパターン。 たぶん、デザパタ(GoFとかのヤツ)ではControllerパターンなんてものは存在しないのですが、よく見掛けるパターンなので紹介します。 よくあるControllerパターンは、FrontControllerパターンを使ったデータ遷移パターンですが、今回僕が紹介するパターンはCommandController(これもGoFとかのパターンにたぶん無いので勝手に命名)です。 何か実行したいCommandについて、Controllerが適切に実装を振り分けその後のActionを実行するためのパターンです。 よくある実装 例えば、以下にCommandインタフェースを実装した複数のクラスがあり、そのCommandによって、実行するActionを振り分けるCo

  • PHPによるデザインパターン入門 - Do You PHP?

    PHPによるデザインパターン入門 秀和システムから発売となった「PHPによるデザインパターン入門」(ISBN4-7980-1516-4・ 2006/11/23発売)を執筆しました(共著です)。 「PHPを使ってGoFパターンを見ていこう」的な書籍になっています。GoFパターンについては、それぞれパターンの説明とサンプルコードという構成です。サンプルコードは、CentOS4.4/Windows XP(SP2)+PHP5.1.x/5.2.0で動作確認しています。 目次は以下の通りです。 1章 デザインパターンの世界へようこそ デザインパターンって何? デザインパターンとは? オブジェクト指向 GoFパターン デザインパターンのメリット・デメリット デザインパターンを使うメリット デザインパターンを使うデメリット PHPとオブジェクト指向 PHPとは? PHP5でのオブジェクト指向開発 2章

    PHPによるデザインパターン入門 - Do You PHP?
  • 1