我的印象是它们基本上都是一样的。模型对象也是一样的吗?
现在,在我的架构中,我有:
class Person
{
public string PersonId;
public string Name;
public string Email;
public static bool IsValidName() { /* logic here */ }
public static bool IsValidEmail() { /* logic here */ }
}
class PersonService
{
private PersonRepository pRepository;
PersonService()
{
pRepository = new PersonRepository();
}
public bool IsExistingEmail(string email)
{
//calls repo method to see if email is in db
}
public Person GetPerson(email)
{
return pRepository.Get(email);
}
public void SavePerson(Person p)
{
if (Person.IsValidEmail(p.Email) && !IsExistingEmail(p.Email)
{
pRepository.Save(p);
}
}
}
class PersonRepository
{
public void Save(Person p)
{
//save to db
}
public Person Get(string email)
{
//get from db
}
public bool IsExistingEmail(string email)
{
//see if email in db
}
}
那么上面的哪些类是POCO
、Domain Object
、Model object
、entity
发布于 2011-05-27 23:24:24
它更多的是函数的内涵;域对象是特定于您的逻辑实现的东西,可能比简单的POCO更复杂;实体具有表示某种东西的内涵(通常引用持久性媒介),而POCO只是类的快速标识符。模型只是一个用来表示对象的术语(通常包含状态,通常处理UI或DB)。
这并不是说有任何功能上的区别,它们只是用不同的术语来更贴切地描述一些东西。比如赛车、卡车和家用轿车之间的区别。所有的都是汽车,但每个术语都更具描述性。
发布于 2011-05-31 17:10:07
在上面的答案中已经有了领域和模型的很好的解释。
在数据库中-上下文实体表示Entity Relationship Model ERD中的项。(即表中的一行)
在Microsoft-Dotnet-EntityFramework-World中实体是指可以使用数据(基本)上下文从数据库加载和保存到数据库的对象。通常,一个实体在没有它的数据(基本)上下文的情况下不能存在。(单元)测试这些类的业务功能是很困难的。
Pocos (Plain Old CommonRuntime Objects)可以在没有PersistenceFramework (EntityFramework或NHibernate)的情况下存在,因此它们更容易测试。
单词poco是基于同样的原因在java世界中创建的pojo (plain old java object)的改编。
发布于 2011-05-27 23:30:18
域对象是应用程序的域层中的实体,例如。Address类。“模型”的意思是相同的--“域模型”中的一个实体。
POCO (普通老式CLR对象)是一个没有定义任何行为(方法)的对象,只包含数据(属性)。POCO通常用作DTO(数据传输对象),以在层之间传输数据,然后数据通常用于填充域对象/实体。
https://stackoverflow.com/questions/6154311
复制相似问题