私は2つの非常によく似たクラスを持っています。クラスAとクラスBとしましょう。
+---------------+ +---------------+
| Class A | | Class B |
|---------------| |---------------|
| Name | | Name |
| ZIP | | ZIP |
| TelPhone | | TelPhone |
| | | MobilePhone |
+---------------+ +---------------+
すべての共通属性の値でそれらを比較したいと思います。
これは私が試した方法ですが、すべての属性(3つ以上の属性を取得)に対して行うのはやり過ぎのように見えます:
$differences = array();
if($classA->getName() != $classB->getName()) {
array_push(
$differences,
array('name' => array(
'classA' => $classA->getName(),
'classB' => $classB->getName()
)
));
}
// and the same code for every attribute....
ここで最善のアプローチは何ですか?
手作業に加えて、クラスが変更されても自動的に更新されません。たとえば、クラス A が MobilePhone 属性も取得するとします。
ポリモーフィズムを行う必要があるとは言わないでください。明確にするための例にすぎません。
その違いに興味があるので、属性だけでなく、属性内の値そのものも。
ありがとう