企业可以在哪些网站做免费宣传做网站绘制蓝图的步骤

张小明 2026/1/19 18:58:11
企业可以在哪些网站做免费宣传,做网站绘制蓝图的步骤,上海市建设市场服务平台官网,广州做网站多一、先放结论它们都是“为了隔离变化”而诞生的马甲缩写英文全称中文直译出现位置核心目的POPersistent Object持久化对象数据库 ↔ 代码一张表一行记录的直接映射DODomain Object领域对象核心业务逻辑层充血模型#xff0c;封装业务行为BOBusiness Object业务对象应用/服务层…一、先放结论它们都是“为了隔离变化”而诞生的马甲缩写英文全称中文直译出现位置核心目的POPersistent Object持久化对象数据库 ↔ 代码一张表一行记录的直接映射DODomain Object领域对象核心业务逻辑层充血模型封装业务行为BOBusiness Object业务对象应用/服务层聚合多个DO面向用例编排DTOData Transfer Object数据传输对象进程/服务间精简字段抗网络延迟VOView Object视图对象控制层 ↔ 前端展示友好防敏感字段泄露一句话总结PO 管存储DO 管业务BO 管编排DTO 管网络VO 管界面。下面上代码咱们边喝奶茶边讲。二、业务场景用户下一单“芋泥波波奶茶”需求用户选好规格大杯、少冰、五分糖。点击“提交订单”前端把数据发过来。后端算价格、扣库存、落库返回“订单创建成功”页面。整条链路里我们到底需要几个对象三、从数据库开始POPO是Persistent Object的简写 PO 就是“一行数据一个对象”字段名、类型和数据库保持一一对应不改表就不改它。kotlin体验AI代码助手代码解读复制代码// 表t_order Data TableName(t_order) public class OrderPO { private Long id; // 主键 private Long userId; // 用户ID private Long productId; // 商品ID private String sku; // 规格JSON private BigDecimal price; // 原价 private BigDecimal payAmount; // 实付 private Integer status; // 订单状态 private LocalDateTime createTime; private LocalDateTime updateTime; }注意PO 里绝不能出现业务方法它只是一个“数据库搬运工”。四、核心业务DODO 是“有血有肉的对象”它把业务规则写成方法让代码自己说话。csharp体验AI代码助手代码解读复制代码// 领域对象订单 public class OrderDO { ​ private Long id; private UserDO user; // 聚合根 private MilkTeaDO milkTea; // 商品 private SpecDO spec; // 规格 private Money price; // Money是值对象防精度丢失 private OrderStatus status; ​ // 业务方法计算最终价格 public Money calcFinalPrice() { // 会员折扣 Money discount user.getVipDiscount(); // 商品促销 Money promotion milkTea.getPromotion(spec); return price.minus(discount).minus(promotion); } ​ // 业务方法下单前置校验 public void checkBeforeCreate() { if (!milkTea.hasStock(spec)) { throw new BizException(库存不足); } } }DO 可以引用别的 DO形成聚合根。它不关心数据库也不关心网络。五、面向用例BOBO 是“场景大管家”把多个 DO 攒成一个用例常出现在 Service 层。scss体验AI代码助手代码解读复制代码Service public class OrderBO { ​ Resource private OrderRepository orderRepository; // 操作PO Resource private InventoryService inventoryService; // RPC或本地 Resource private PaymentService paymentService; ​ // 用例下单 Transactional public OrderDTO createOrder(CreateOrderDTO cmd) { ​ // 1. 构建DO OrderDO order OrderAssembler.toDO(cmd); ​ // 2. 执行业务校验 order.checkBeforeCreate(); ​ // 3. 聚合逻辑扣库存、算价格 inventoryService.lock(order.getSpec()); Money payAmount order.calcFinalPrice(); ​ // 4. 落库 OrderPO po OrderAssembler.toPO(order, payAmount); orderRepository.save(po); ​ // 5. 返回给前端需要的数据 return OrderAssembler.toDTO(po); } }BO 的核心是编排它把 DO、外部服务、PO 串成一个完整的业务动作。六、跨进程/服务DTODTO 是“网络快递员”字段被压缩成最少只带对方需要的数据。1入口 DTO前端 → 后端kotlin体验AI代码助手代码解读复制代码Data public class CreateOrderDTO { NotNull private Long userId; NotNull private Long productId; Valid private SpecDTO spec; // 规格 }2出口 DTO后端 → 前端kotlin体验AI代码助手代码解读复制代码Data public class OrderDTO { private Long orderId; private String productName; private BigDecimal payAmount; private String statusDesc; private LocalDateTime createTime; }DTO 的字段命名常带 UI 友好词汇如statusDesc并且绝不暴露敏感字段如userId在返回给前端时可直接省略。七、最后一步VOVO 是“前端专属快递”字段可能二次加工甚至带 HTML 片段。typescript体验AI代码助手代码解读复制代码Data public class OrderVO { private String orderId; // 用字符串避免 JS long 精度丢失 private String productImage; // 带 CDN 前缀 private String priceText; // 已格式化为“18.00” private String statusTag; // 带颜色green/red }VO 通常由前端同学自己写 TypeScript/Java 类后端只负责给 DTO再让前端 BFF 层转 VO。如果你用 Node 中间层或 ServerlessVO 就出现在那儿。八、一张图记住流转过程scss体验AI代码助手代码解读复制代码前端页面 │ JSON ▼ CreateOrderVO (前端 TS) │ 序列化 ▼ CreateOrderDTO (后端入口) │ BO.createOrder() ▼ OrderDO (充血领域模型) │ 聚合、计算 ▼ OrderPO (落库) │ MyBatis ▼ 数据库返回时反向走一遍java体验AI代码助手代码解读复制代码数据库 │ SELECT OrderPO │ 转换 OrderDTO │ JSON OrderVO (前端 TS 渲染)九、常见疑问答疑为什么 DO 和 PO 不合并数据库加索引、加字段不影响业务业务改规则不改表结构。隔离变化。DTO 和 VO 能合并吗小项目可以但一上微服务或多端App、小程序、管理后台立马爆炸。比如后台需要用户手机号App 不需要合并后前端会拿到不该看的数据。BO 和 Service 有什么区别BO 更贴近用例粒度更粗。Service 可能细分读写、缓存等。命名随意关键看团队约定。十、一句话背下来数据库里叫 PO业务里是 DO编排靠 BO网络走 DTO前端看 VO。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站建设相关费用网站由哪几部分组成

UUID的定义UUID(Universally Unique Identifier)是用于标识信息的128位唯一标识符,标准形式为32个十六进制数字,分为5段并以连字符分隔(如123e4567-e89b-12d3-a456-426614174000)。其核心特性是全局唯一性&…

张小明 2026/1/17 18:07:56 网站建设

太原网站制作哪里便宜网页制作教程和流程

DeepLX免费翻译API终极指南:5分钟搭建零成本翻译服务 【免费下载链接】DeepLX DeepL Free API (No TOKEN required) 项目地址: https://gitcode.com/gh_mirrors/de/DeepLX 还在为DeepL翻译的高昂费用而烦恼吗?DeepLX为你带来革命性的解决方案——…

张小明 2026/1/17 18:07:56 网站建设

网站建设公司南宁手把手教你做网站7

0. 问题描述 重新分盘,优化C盘,需要把conda envs 移动到E盘的时候,我发现我根本就没有这东西,那它到底是什么东西,我一定要安装吗? 1. 它到底是个什么东西?(一句话) conda 是一个:“给 Python 和它的各种依赖分房间、配钥匙、管秩序的管理员” 不是语言 不是编辑器…

张小明 2026/1/17 18:07:58 网站建设

做机械加工外贸网站哪家好wordpress 宋体、

突破平台限制:一站式Steam创意工坊模组下载解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 在当今多平台游戏生态中,玩家常常面临一个尴尬局面&…

张小明 2026/1/17 18:07:59 网站建设

做食品外贸选哪个网站好酒店设计

第一章:企业级PHP插件系统的设计理念构建企业级PHP插件系统的核心在于实现功能解耦、提升可维护性与支持动态扩展。一个良好的插件架构应允许第三方开发者在不修改核心代码的前提下,安全地注册、启用或禁用功能模块。松耦合与接口隔离 通过定义清晰的接口…

张小明 2026/1/17 18:08:00 网站建设

免费标志在线设计生成团购网站如何优化

OBS Source Record插件版本兼容性修复:技术适配与社区协作的完美结合 【免费下载链接】obs-source-record 项目地址: https://gitcode.com/gh_mirrors/ob/obs-source-record 在开源软件生态中,版本兼容性始终是开发者与用户共同关注的焦点。当OB…

张小明 2026/1/17 18:08:01 网站建设