값 개체 e DDD
2981 단어 webdevapidesignprogramming
Primeiro, você precisa ter certeza de que seus objetos de valor são imutáveis. Isso ajuda a garantir que sejam thread-safe e que seu estado seja semper consistente.
Em segundo lugar, você precisa ter certeza de que seus objetos de valor são serializáveis. Isso permite que eles sejam transmissionidos entre diferentes partes do seu sistema sem problemas.
Tipos primitivos são a base da maioria das linguagens de programação. No entanto, os tipos personalizados podem fornecer mais funcionalidade e ser mais expressivos. PHP는 CPF를 대표하는 기본 문자열 포드가 아닌 값 개체 "CpfValueObject"로 대체할 수 있는 포드가 없습니다. CpfValueObject 의 가치 개체 포드에는 유형 문자열에 대한 재귀가 포함됩니다. 예를 들어, CpfValueObject 팟에는 cpf에 대한 절대 값 또는 절대 값이 포함되며, 이는 특히 도메인 요청에 대한 협상에 의존합니다. Outra vantagem de usar objetos de valor é que ele pode tornar o código mais legível. Por exemplo abaixo um objeto de valor
cpf de um domínio 사용자/
<?php
namespace App\Users\ValueObjects;
use Stringable;
class Cpf implements Stringable
{
private string $cpf;
public function __construct(string $cpf)
{
$this->setNumber($cpf);
}
private function setNumber(string $cpf): void
{
$opcoes = [
'options' => [
'regexp' => '/\d{3}\.\d{3}\.d{3}\-\d{2}/'
]
];
if(filter_var($cpf, FILTER_VALIDATE_REGEXP, $opcoes) === false) {
throw new \InvalidArgumentException('CPF inválido');
}
$this->cpf = $cpf;
}
public function __toString(): string
{
return $this->cpf;
}
}
Reference
이 문제에 관하여(값 개체 e DDD), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/matheusfelipemarinho/my-first-publish-43a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)