実際にオブジェクト指向で重要なのは「クラス」でプログラムでは以下のようなコードを書きます。
<?php
class FILE{
var $filename;
function FILE($fn){ $this->filename = $fn; }
function read(){ ... }
function write(){ ... }
function get($start,$end){ ... }
}
?>
これはFILEという部品(クラス)を作っています。
※function read,write,get の中身は省略してあります。
ファイルを扱う処理は、CGIでは非常によく使われる処理なのでクラス化しておくと何度も再利用できます。
共有関数だと以下のような感じになると思います。
<?php
function read(){ ... }
function write(){ ... }
?>
これでも良いような気もするのですが、
read,write などといった名前は衝突する危険性があります。
※特に複数人数でプログラムを作る際など。
なので、実際、file_read,file_write などとつけるようになります。
長くてなんか面倒、というのもここで1つありますが、
非常に困るのは、アプリケーション作成の上で発生する仕様変更の際です。
クライアントからここをやっぱりこう変更して、だとか
やっぱりこっちの方が作りやすいな、とプログラマが気づく場合、あなたならどうしますか?
以前の私なら、変更部分の関数を全面的に書き換えてたと思います。
※書き換えるだけならまだしもそのテストもしないといけない…
実際それ以外に方法はないような気がします。
file_read の内部で細かい関数をいくつも組み合わせていれば変更はそれなりに楽なのかもしれませんが、30行ぐらいの手続きを書いていて一部分変更ならまだしも、そうではないケースも結構あります。
そんな場合、オブジェクト指向を使えば「継承」という概念で一部分のみを変更することができます。
更に、変更前のものはそのまま残しておけます。
機能の追加も容易です。
スポンサードリンク
→
継承について