クラスのインターフェイスを定義する - PHP5 プログラミング

PROGRAM


クラスのインターフェイスを定義する

PHP5 では、独自のクラスにインターフェイスを実装させることを義務付けることができるようになっています。

あらかじめ "インターフェイス" として、実装すべきメソッドを定義しておくことで、それを独自クラスに取り込んで、そこで実際に実装するという感じの使い方になります。

Java のような型定義が厳密なオブジェクト指向プログラム言語であれば、インターフェイスは意味を持ってくるかと思いますけど、PHP のように実行時に逐次解釈されるスクリプト言語の場合、どれくらい意味があるかは疑問です。

ただ、インターフェイスを取り込んでおくと、そのメソッドが実装されていない場合に PHP がエラーを出してくれるので、複数人数での開発や、互換部品を作成するような場面などで役に立つかもしれません。

 

インターフェイスの定義は、次のように行います。

interface PhoneInterface

{

// インターフェイスに定数を持たせることもできます。変数は持てません。

const INTERFACE_VERSION = '1.0.0';

 

// メソッド名と取る引数だけを宣言します。実装はしません。

public function call($toNumber);

}

このようにしたら、例えば次のようにして、インターフェイスを独自クラスに取り込みます。

class Phone implements PhoneInterface

{

public $myNumber;

 

public function __construct($myNumber)

{

}

 

// インターフェイスで定義したメソッドは必ず実装する必要があります。

public function call($toNumber)

{

}

 

// インターフェイスに定義されていないメソッドも、必要に応じて実装して行きます。

 

}

インターフェイスで定義されたメソッドを実装しないと、クラス利用時の早い段階でエラーとして検出してくれるようなので、より厳密なプログラミングを行いたい場合には、役に立つかもしれません。


[ もどる ]