interface 使いどころ 継承先が不特定な場合 特徴 多重継承ができる。 interfaceで用意した関数は実装先で定義しなければならない。 abstractクラス 使いどころ 特定の派生先で一部の実装が異なる場合 特徴 abstractの修飾子をつけたものは、継承先で定義しなくてはいけない。 <?php abstract cla …
タグ: オブジェクト指向
クラス array() 静的メソッドの特殊な呼び出し方 PHP
array()を使って、クラスと静的メソッドを指定したインスタンスが作れます。 WordPressのプラグインのフックにメソッドを追加するときによく使いますね。 <?php class Komainu { public static function nakigoe($name) { echo $name.”ってすごいズラ”; } } $youkaiObj = a …
Factory Method パターン PHP
使いどころ 一度生成したインスタンスに対して変更をさせない 外部からインスタンスを生成させない。Robot::creteRedRobot(), Robot::createBlueRobot()からのみ生成が可能 <?php class Robot { private $name = ”; private $color; public …
ざっくりオブジェクト指向
オブジェクト指向で実装するメリット 拡張性 ・それぞれクラスとして独立性、拡張性を高める。 ・変更に強くなる。 開発効率 ・一連の処理をまとめて部品化し、再利用を行うことで開発効率をあげる 3大要素 独立性 Aクラス、Bクラス、Cクラスとそれぞれ独立させて、Aの変更がB, Cクラスに影響しないようにする ※密に結合しているとAクラスの変更を行うと、Bクラス、Cクラス …
PHP Iteratorパターン [PHPによるデザインパターン入門]
絶版されているけれど、Google booksで公開されているのが見れます。 https://books.google.co.jp/books?id=sXNh4TeQeBIC&printsec=frontcover&hl=ja#v=onepage&q&f=false 1日1パターンってことで演習してアウトプットしていきます。 iterate = 反復す …
PHP グローバル変数とスコープ
ローカルスコープ 変数には範囲(スコープ)があり、変数は関数内の範囲で有効 グローバルスコープ グローバルスコープは関数内を超えて、1スクリプト内で有効になる クラス内のstatic変数もグローバル変数と同等 シングルトンもある意味グローバル変数と同等 使いどころ 関数内を超えて変数を扱いたい場合 変数のスコープは可能な限り最小の範囲にするのが望ましい & …
PHP カプセル化
メンバ変数をprivateにすることで、生成したインスタンスのプロパティに直接アクセスさせない。 下記みたいにプロパティにアクセスして表示させたりしていると、この変数に対して何か加工をしようとした時に、表示させているすべての箇所をテストしたり、修正する必要が出てくるかもしれない! $obj = new Product($data); echo $obj->name; // プロパティにアクセ …
PHP Factory Methodパターン [PHPによるデザインパターン入門]
絶版されているけれど、Google booksで公開されているのが見れます。 https://books.google.co.jp/books?id=sXNh4TeQeBIC&printsec=frontcover&hl=ja#v=onepage&q&f=false 1日1パターンってことで演習してアウトプットしていきます。 使いどころ オブジェクト生 …
PHP Adapterパターン [PHPによるデザインパターン入門]
絶版されているけれど、Google booksで公開されているのが見れます。 https://books.google.co.jp/books?id=sXNh4TeQeBIC&printsec=frontcover&hl=ja#v=onepage&q&f=false 1日1パターンってことで演習してアウトプットしていきます。 使いどころ 十分に実績のあ …
PHP Singletonパターン [PHPによるデザインパターン入門]
絶版されているけれど、Google booksで公開されているのが見れます。 https://books.google.co.jp/books?id=sXNh4TeQeBIC&printsec=frontcover&hl=ja#v=onepage&q&f=false 1日1パターンってことで演習してアウトプットしていきます。 使いどころ どうしてもイン …
UML クラス図
UMLの目的 複雑なクラスやオブジェクトの関係を図で示すことで開発者や関係者で共有する為 UMLはメンバ変数やメソッドといったすべてを記述する必要はない。 注目させたい箇所を目出せたい場合は、あえて必要情報しか記述しないケースもある クラス図 クラス名 メンバ変数名 メソッド名 3つの項目で構成される 継承とインターフェイスの実装 関係 …
PHP メソッドチェーン シングルトン
PHP メソッドチェーン シングルトン 会社のサイトに詳しく書いてあります。 <?php class Animal { protected $name; protected $koe; public function setName($name) { $this->name = $name; } public function getName(){ return $this-> …