将实体复制到“不同类”?

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);

以上是关于将实体复制到“不同类”?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在 Symfony 4 中的不同类上使用函数?

如何将数据从一个活动传递到android中的另一个活动片段? [复制]

如何获取功能的不同类的值列表? [复制]

添加新实体标量时实体框架 4 映射片段错误

如何将值从一个活动中的片段传递到另一个活动? [复制]

如何将用户的TextFormField输入传递给flutter中不同类的按钮