将实体复制到“不同类”?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将实体复制到“不同类”?相关的知识,希望对你有一定的参考价值。
我有一个customer
和一个order
实体。 (学说实体)
两者都有一个address
相关实体,实现相同的AddressInterface
当客户下订单时,我想将客户的地址复制到订单的地址。 (我需要一份副本,因为我不希望在客户地址发生变化时更改订单地址)
所以我当然可以这样做:
$orderAddress = new OrderInvoiceAddress();
$orderAddress->setLastName( $customerAddress->getLastName() );
...
...
但我想知道是否有更优雅的方式?
答案
使用静态方法:
class OrderAddress {
static function CreateFromCustomerAddress(CustomerAddress $customerAddress)
{
$orderAddress=new self();
$orderAddress->setFirstName($customerAddress->getFirstName());
return $orderAddress;
}
private $firstName;
用法:
$orderAddress=OrderAddress::CreateFromCustomerAddress($customerAddress);
以上是关于将实体复制到“不同类”?的主要内容,如果未能解决你的问题,请参考以下文章