我在 SO 上的书籍和文章中阅读了很多关于 DTO 的内容,但我不确定我是否理解正确。
我们在项目中使用 DTO,因此它们几乎只是域对象的属性。因此,我们需要一个复杂的 DTO 结构。有一些类相互扩展,组合、聚合等。
问题比较笼统。
从另一个 dto 继承一个 dto 或在另一个 dto 中引用一个 dto 是否正确?
.net design-patterns domain-driven-design data-transfer-objects
我有以下域实体:
public class CartItem
{
public virtual Guid Id { get; set; }
public virtual Guid SessionId { get; set; }
public virtual int Quantity { get; set; }
public virtual Product Product { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我有以下DTO:
public class CartItemDTO
{
public CartItemDTO(CartItem cartItem)
{
Id = cartItem.Id;
Quantity = cartItem.Quantity;
Name = cartItem.Product.Name;
Price = cartItem.Product.Price;
}
public Guid Id { get; private set; }
public int Quantity { get; private set; }
public string Name { …Run Code Online (Sandbox Code Playgroud) asp.net-mvc domain-driven-design data-transfer-objects dto asp.net-mvc-2
我试图理解POCO的确切含义(是的,我已经读过维基百科,但仍然无法得到主要观点:().
我知道Value Object是一个对象,基本上只有属性来保持数据没有任何行为.
在这种情况下,在我看来,POCO和'Value Objects'具有相同的结构,但不同之处在于POCO的目标是.net框架.
我对么?
谢谢.
我的 DTO 类中有一个字段,它接受 start_time 和 end_time 作为“2:00 AM”
/**
* @var string
*/
#[CastWith(TimeCaster::class)]
public string $start_time; // 01:00 AM example
/**
* @var string
*/
#[CastWith(TimeCaster::class)]
public string $end_time;
Run Code Online (Sandbox Code Playgroud)
我可以在 Caster 类中使用 Carbon 解析这种时间格式吗
#[\Attribute] class TimeCaster implements Caster
{
public function cast(mixed $value): mixed
{
return Carbon::parse($value)->format();
}
}
Run Code Online (Sandbox Code Playgroud)