操纵实体的类的名称

cyb*_*est 4 c# java language-agnostic naming-conventions

我有一个关于命名约定的一般问题.

如果我将数据和操作分成两个单独的类.一个具有数据元素(实体),另一个类操纵实体类.我们通常称那个操纵实体类的类是什么?

(我指的实体与任何类型的实体框架无关)

经理?控制器?运营商?机械手?

提前致谢

int*_*bit 23

这取决于您在这些数据合同/实体上执行的操作类型.以下是我的一些惯例.让我们使用一个Fruit实体的例子(我并不是试图暗示这些都是静态方法,只是伪代码):

  • 存储库:为一块水果提供CRUD操作
    • FruitRepository.Save(Fruit item);
  • 经理:简单CRUD之外的操作.
    • InventoryManager.ShipFruit(Fruit[] items, string address);
  • 控制器:保留用于接口,如在模型 - 视图 - 控制器中.使界面或流程决策如何在水果上显示或操作.
    • FruitController.ShowDetails(string fruitId);
  • 处理器:用于"批处理"在一起的操作.通常这些都是长期运行或脱机完成的.
    • FruitProcessor.RemoveSeeds(Fruit[] lotsOfFruit);
  • 操纵器:对单个实体或其集合提供特定操作.
    • FruitManipulator.PeelFruit(Fruit item);
  • 提供商:提供更广泛或全球的运营.
    • FruitProvider.GetAllTypesOfFruit();
    • FruitProvider.IsInSeason(string fruitName);
  • 导出器:将一些水果转换为用于文件存储或传输的格式.
    • FruitExporter.Save(string spreadsheet);
  • 分析仪:提供有关单个水果或数量的结果.
    • FruitAnalyzer.Weigh(Fruit[] items);
  • 服务:以松散耦合或远程访问方式公开功能.
  • 汇编程序:通过组合不同的数据源来创建水果.
    • FruitAssembler.Combine(string speciesFile, string quantitiesFile);
  • 工厂:负责创建/实例化水果.
    • FruitFactory.CreateApple(); // red delicious, McIntosh, etc
  • 构建器:提供通过单个部件/属性构建水果的方法.
    • FruitBuilder.AddSeeds(5); FruitBuilder.AddStem();

这些都有些松散.主要目标是在您自己的代码库中保持一致,避免与您正在使用的技术发生冲突 - 即.如果您正在使用ASP.NET MVC,那么没有很多不是控制器的Controller类.