我有两个对象,我需要将一些数据从一个对象传递到另一个对象。我用于那个 getter 和 setter。将来我会有很多这样的对象,我不喜欢使用 getter 和 setter 的解决方案,因为我必须编写太多代码。
有没有办法灵活地做到这一点?例如,使用一些映射来了解需要使用哪些方法将数据设置到另一个对象或类似的东西?是的,我写的是 PHP。
您可以包装您的复制功能,以便代码保持可读性。
像这样的东西:
class DataHelper {
public static function copyData($objA, $objB) {
$objB->setAnything( $objA->getAnything() );
}
}
$foo = new yourClass();
$bar = new yourClass();
DataHelper::copyData($foo, $bar);
此外,根据复制操作,这是“DRY”
我知道我们在这里使用了您想要阻止的 getter 和 setter,但是在定义数据时,您不会一遍又一遍地重复 getter 和 setter 来生成数据。这将仅由辅助方法完成一次(当然也可以是一个不包含在类中的单个函数)
您可以将一个对象分配给一个 PHP 变量,然后只传递这个单个变量。变量中公开可见的属性在传递后将可见——简单!