はじめに
無名クラスについてまとめる
無名クラス
その名の通り、名前を持たないクラス。
定義したクラスを後から利用しないことがわかっているクラスを定義するのに利用する。
メリット
・コードをシンプルに表現でき、見た目にも関連性を把握しやすい。
・式が許されている場所であれば、どこにでも記述できる。
・名前がないので、そもそも名前が競合する恐れがない。
参考コード
execute
メソッドでは、あらかじめ決められた前後の処理を挟んで、与えられた任意の処理を実行できるものとする。
class_anonymous.php
interface Runnable {
function run();
}
class MyClass {
public function execute(Runnable $rc) : void {
// ダミー処理(本来はなんらかの前処理を実装)
print 'start...';
// 利用者から指定された処理を実行
$rc->run();
// ダミー処理(本来はなんらかの後処理を実装)
print 'end...';
}
}
$cls = new MyClass();
$cls->execute(new class implements Runnable {
public function run() : void {
print 'process...';
}
});
// 実行結果:start...process...end...