公司项目中各种O有啥好处

很多公司喜欢使用bo,do,po,dto,vo等等去细化类对象,比如前端一个请求来到后端接口,bo存储请求需要的参数数据,po存储数据库查到的数据,各种dto存储服务层的各种转换的那些数据,vo存储返回给前端的数据。整个过程会经过bo到po到dto再到vo的层层转换。转来转去不繁琐吗?为什么不直接一个实体类对应数据库表信息呢,这样做有啥好的?

典型的大企业病,目标异化。大家不是围绕真正的业务干活,而是做形式上的无用功。表面是技术问题,背后是管理问题。

只是一个规范性的问题,没有必要较真

【以下回答由 GPT 生成】

在公司项目中使用各种O对象有以下优势:

  1. 解耦和复用性: 使用不同的O对象可以很好地将业务逻辑和数据存储分离开来。每个O对象负责特定的功能,使得代码更加模块化,易于维护和扩展。不同的O对象可以根据具体需求进行组合使用,提高代码的复用性。

  2. 数据安全性: 使用不同的O对象可以限制对数据的访问权限,保护数据的安全性。比如,如果某个O对象只包含部分敏感信息,只有在特定的业务逻辑下才能被访问,可以避免数据的误用或滥用。

  3. 业务逻辑清晰: 使用不同的O对象可以将复杂的业务逻辑进行划分和组织,使得代码的结构更加清晰。每个O对象都负责特定的业务功能,方便进行单元测试和调试。

  4. 灵活性: 使用不同的O对象可以适应需求变化和业务扩展。不同的O对象可以根据不同的业务需求进行设计和调整,而不会对整个系统产生影响。这样在需求变更或新增功能时,只需要修改或添加特定的O对象,而不需要改动整个系统。

  5. 提高性能: 使用不同的O对象可以减少数据传输量和提高查询效率。比如,在前端请求到后端时,使用bo对象只传输需要的参数数据,避免请求的冗余数据。而在后端查询数据库时,使用po对象只持有必要的数据库字段,减少了内存占用和查询的时间。

为什么不直接使用一个实体类来对应数据库表信息:

  1. 保证数据一致性: 如果直接使用一个实体类来对应数据库表信息,在业务逻辑复杂的项目中,不同的功能可能会对同一个实体类进行不同的修改。这样会导致实体类的职责模糊,难以保证数据的一致性。

  2. 提高代码可读性: 在一个实体类中,可能会包含大量的字段和方法,难以理清业务逻辑。而使用不同的O对象,可以明确每个对象的作用和属性,提高代码的可读性和可维护性。

  3. 实现业务与数据的分离: 在项目中,业务逻辑往往会发生变化,而数据库表往往是稳定的。使用不同的O对象可以将业务逻辑与数据库表解耦,使得代码更加灵活和可扩展。

综上所述,使用各种O对象能够提高代码的灵活性、可读性和可维护性,同时保证数据的一致性和安全性。不直接使用实体类对应数据库表信息可以使代码更具模块化、可扩展和易于理解。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^