タグ: オブジェクト指向

SEノウハウ

デザインパターン まとめ

    Template Method abstract classして親は抽象クラスとして定義し、共通メソッドとクラス毎に処理が変わる処理をabstract methodを定義する 継承した子クラスは親クラスでabstractで指定したメソッドを実装することで、共通処理を保証しクラス毎に異なる処理を定義できる。   Singleton 1つのクラスに1インスタンスし …

PHP

PHP Facadeパターン

      BuyController.class.php ※Facade適用前

コントローラが肥大化する! コントローラにModel部分の処理が入ってきている…。       Facadeパターンを適用する   Controllerで行っていたMod …

PHP

PHP Adapterパターン

  使いどころ 既存のクラスに変更を加えたいが、直接ソースの変更を行いたくない。       WatchYoukai.class.php

  client.php

        …

PHP

PHP Template Methodパターン [PHPによるデザインパターン入門]

絶版されているけれど、Google booksで公開されているのが見れます。 https://books.google.co.jp/books?id=sXNh4TeQeBIC&printsec=frontcover&hl=ja#v=onepage&q&f=false 1日1パターンってことで演習してアウトプットしていきます。   使いどころ 似たような処理 …

PHP

PHPの継承 Interface 抽象クラスabstract 多重継承Trait

  interface 使いどころ 継承先が不特定な場合 特徴 多重継承ができる。 interfaceで用意した関数は実装先で定義しなければならない。   abstractクラス 使いどころ 特定の派生先で一部の実装が異なる場合   特徴 abstractの修飾子をつけたものは、継承先で定義しなくてはいけない。   [crayon-5cea8e56c9fca …

PHP

Singleton パターン PHP

    使いどころ   複数のインスタンスを使いたくない。 1つのインスタンスで使い回しがしたい。     1つのインスタンスしか作成できないように保証し制御します。 クラスにアクセスするためのグローバルな方法も提供します。     Singletonのポイント   インスタンスを代入する静的メンバを作っておきます。 …

PHP

クラス array() 静的メソッドの特殊な呼び出し方 PHP

  array()を使って、クラスと静的メソッドを指定したインスタンスが作れます。 WordPressのプラグインのフックにメソッドを追加するときによく使いますね。  

    表示結果   都会ってすごいズラ にゃーけーびー~~! 優元気だして!私がついてるわん   &n …

PHP

Factory Method パターン PHP

    使いどころ 一度生成したインスタンスに対して変更をさせない 外部からインスタンスを生成させない。Robot::creteRedRobot(), Robot::createBlueRobot()からのみ生成が可能    

  表示 優ロボットred   constru …

PHP

PHP Iteratorパターン [PHPによるデザインパターン入門]

絶版されているけれど、Google booksで公開されているのが見れます。 https://books.google.co.jp/books?id=sXNh4TeQeBIC&printsec=frontcover&hl=ja#v=onepage&q&f=false 1日1パターンってことで演習してアウトプットしていきます。   使いどころ   …

PHP

PHP グローバル変数とスコープ

  ローカルスコープ 変数には範囲(スコープ)があり、変数は関数内の範囲で有効   グローバルスコープ グローバルスコープは関数内を超えて、1スクリプト内で有効になる クラス内のstatic変数もグローバル変数と同等 シングルトンもある意味グローバル変数と同等   使いどころ 関数内を超えて変数を扱いたい場合 変数のスコープは可能な限り最小の範囲にするのが望ましい & …

PHP

PHP カプセル化

メンバ変数をprivateにすることで、生成したインスタンスのプロパティに直接アクセスさせない。 下記みたいにプロパティにアクセスして表示させたりしていると、この変数に対して何か加工をしようとした時に、表示させているすべての箇所をテストしたり、修正する必要が出てくるかもしれない!

  メンバ変数を表示させたい場合は、get …