タイトル: カプセル化の具体例
ここでは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を使用する処理】
<html>
<body>
<?php
require_once 'TestDto.php';
//DTOクラスをインスタンス化
$testDto = new TestDto();
//コンストラクタで設定されたデフォルト値を取得する
print 'コンストラクタで設定された値';
print "</br>";
print 'Prop1 = ';
print $testDto->getProp1();
print "</br></br>";
//値を変更する
$testDto->setProp1('BBB');
//値が変更されたことを確認する
print '設定し直した値';
print "</br>";
print 'Prop1 = ';
print $testDto->getProp1();
print "</br>";
?>
</body>
</html>
【処理結果】
コンストラクタで設定された値
Prop1 = AAA
設定し直した値
Prop1 = BBB