Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Naming 您如何命名“您的产品”;“相同”;应用程序不同层中的实体?_Naming - Fatal编程技术网

Naming 您如何命名“您的产品”;“相同”;应用程序不同层中的实体?

Naming 您如何命名“您的产品”;“相同”;应用程序不同层中的实体?,naming,Naming,您有一个处理公司事务的N层应用程序,因此您有一个名为Company的表,DAL中的一个对象名为MyApp.DAL.Company,应用层中的一个对象名为MyApp.Core.Company,服务合同名为MyApp.contract.Company,在名为MyApp.ServiceReference.Company的客户端代理中,以及在名为MyClient.model.Company的客户端模型中。您的viewmodel中可能还有一个名为MyClient.viewmodel.Company 问题:

您有一个处理公司事务的N层应用程序,因此您有一个名为Company的表,DAL中的一个对象名为
MyApp.DAL.Company
,应用层中的一个对象名为
MyApp.Core.Company
,服务合同名为
MyApp.contract.Company
,在名为
MyApp.ServiceReference.Company
的客户端代理中,以及在名为
MyClient.model.Company
的客户端模型中。您的viewmodel中可能还有一个名为
MyClient.viewmodel.Company

问题:

  • 如何处理在每一层从
    Company
    转换为
    Company
    的样板代码
  • 你如何处理他们都有相同的名字这一事实?在这些层中,这是一个问题,在这些层中,您必须同时处理这两个问题(例如,在服务契约实现中),但在单元测试、集成测试和(较少的)系统测试中也要处理这两个问题

  • 我喜欢相同的名称,不同的名称空间。理由是,实体应该代表一个业务域名——在不同的位置对其进行修改。如果您的名称空间很长,那么您的开发语言可能支持名称空间别名以进行清理(例如Dal.Entity、Contract.Entity等)