タイトル: カプセル化の具体例
ここではPHPのカプセル化の具体例を記載する。
カプセル化で使用するデータ格納用のクラスを以下、DTO(Data Transfer Object)と呼称する。
【DTOクラス】
class TestDto {
//プロパティを定義
//値の出し入れはgetter, setterメソッドを経由させるのでプロパティの修飾子はprivate
private $prop1;
//コンストラクタ
//インスタンス化時に設定したい値を定義する
function __construct() {
$this->prop1 = 'AAA';
}
//プロパティから値を取得するゲッターメソッド
function getProp1() {
return $this->prop1;
}
//プロパティに値を設定するセッターメソッド
function setProp1($prop1) {
$this->prop1 = $prop1;
}
}
【DTOを使用する処理】
require_once 'TestDto.php';
//DTOクラスをインスタンス化
$testDto = new TestDto();
//コンストラクタで設定されたデフォルト値を取得する
print 'コンストラクタで設定された値';
print "";
print 'Prop1 = ';
print $testDto->getProp1();
print "";
//値を変更する
$testDto->setProp1('BBB');
//値が変更されたことを確認する
print '設定し直した値';
print "";
print 'Prop1 = ';
print $testDto->getProp1();
print "";
?>
【処理結果】
コンストラクタで設定された値
Prop1 = AAA
設定し直した値
Prop1 = BBB