【问题标题】:Confused, is this poco?懵了,这是poco吗?
【发布时间】:2012-11-11 13:47:58
【问题描述】:

假设我要实现以下接口:

public interface ICar
{
   bool IsMoving();
   bool IsRegistered();
   int CurrentSpeed {get; set;}
} 

   public class Car : ICar
   {
       public int CurrentSpeed {get; set;}        
       public bool IsMoving()
       {
         // some logic here
       }
   }

这个 IsMoving() 方法会破坏 poco 定义吗?

【问题讨论】:

标签: c# poco


【解决方案1】:

POCO 是框架设计的一个特点,这意味着使用框架的(某些)代码不必适应它。最值得注意的是,在 ORM 框架中,这意味着实体类不必,例如,实现 IEntity 以允许在数据库中持久化。

这意味着在您自己的代码中,您无需关心什么是“POCO”,什么不是“POCO”。但是,如果您需要其他人使用您的代码来实现 ICar,那么您不允许他们使用 POCO。

【讨论】:

    【解决方案2】:

    查看此链接 DTO ver POCO

    POCO vs DTO

    引用(但请阅读链接并点击那里的其他链接)

    ...POCO 遵循 OOP 的规则。它应该(但不是必须) 有状态和行为。 POCO 来自 POJO,由 Martin 创造 福勒...

    换句话说,如果 POCO 有行为,那是绝对可以的。 The requirement for POCO 不知道持久性

    【讨论】:

    • 该术语与持久性无关。一般来说,它的意思是“不知道有一个框架向它提供服务”。这些服务可以是对象状态的持久性,或者将其方法公开为 Web 服务,或者注入其依赖项。如果您的框架对客户端对象提出任何要求,则这些对象不是 POCO。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-21
    • 2011-07-04
    • 1970-01-01
    • 2012-12-30
    • 1970-01-01
    • 1970-01-01
    • 2012-09-22
    相关资源
    最近更新 更多