- 领域驱动设计(DDD)深度解析:从小白到入门
月落星还在
数据库设计模式
一、为什么要学DDD?——从现实问题说起假设你参与开发一个电商系统,需求如下:用户下单时,需检查库存、计算优惠、生成订单同一商品的库存信息分散在商品服务、订单服务、促销服务中开发过程中频繁出现「订单金额计算逻辑冲突」「库存状态不一致」等问题传统开发方式的问题:需求直接映射为数据库表结构业务逻辑散落在Service层技术实现主导设计,业务语义模糊此时,领域驱动设计(Domain-DrivenDesi
- n-tier(层)架构
神经兮兮的小饼
架构知识
一,不断要去改。二来还得快。就必须要用n-tier(层)模式开发。这样我就可以把分工分得很细。需要改动时,可以一步到位,找到需要改动的地方,而且还可以非常快。n-tier架构,把model细化分成了几层。现在继续把其中的服务层(service)细化,变成service层调用BO(BusinessObject)层,BO层调用DO(domainobject)层。1、DO(domainobject)DO
- 个人怎么申请自己的域名邮箱?
安全
在互联网时代,拥有一个属于自己的域名邮箱(如
[email protected])不仅能提升个人形象,还能让沟通更专业化。相比普通的免费邮箱,域名邮箱更具个性化和可信度。那么,个人如何申请自己的域名邮箱呢?本文将以通俗易懂的语言,带你一步步了解申请流程,并以Zoho邮箱为例,帮助你快速上手。什么是域名邮箱?在开始之前,我们先简单了解一下什么是域名邮箱。域名邮箱是基于你自己的域名(如you
- 一学就会的深度学习基础指令及操作步骤(6)迁移学习
小圆圆666
深度学习迁移学习人工智能卷积神经网络
文章目录迁移学习模型准备数据增强模型训练模型微调和预测检查预测结果迁移学习迁移学习是将一个任务中学到的知识应用到另一个相关任务上,以提高新任务的学习效率和性能。优势:节省训练时间,提高模型性能,尤其在小数据场景下效果显著。核心是利用源域的知识来帮助目标域任务,比如在ImageNet上预训练的模型用于医疗影像分类。源域(SourceDomain):已有知识的领域(如ImageNet图像库)。目标域(
- aws VPC link 在API gateway 作用
shenghuiping2001
awsaws
今天实践了VPClink的使用:先看一下架构:(如果没有apigateway,那么就是domain->SLB,有了apigateway就是:domain->apigateway)1:创建vpclink:2:先看创建的netloadbvalancer:3:注意上面的oadbalancer的scheme是internal,所以说这个是不能公网访问的。注意上面的type是network的loadbala
- VO DTO DO PO
BusyMonkey
JavaSpringjavaspring
1、定义VO:ViewObject,视图对象,用于展示层DTO:DataTransferObject,展示层与服务层的数据传输对象DO:DomainObject,领域对象,抽象的业务实体PO:PersistentObject,持久化对象2、VO和DTO的区别数据本质是一样的,比对DTO是没有转义的,数据库字段0、1、2、A、B等。VO则是转以后的开始状态、结束状态,运行状态等
- Abp框架
科学的发展-只不过是读大自然写的代码
c#
基于DDD的现代ASP.NET开发框架–ABP系列文章总目录什么是ASP.NETBoilerplateProject(ABP)框架【DDD】领域驱动设计实践——框架实现DDD分层架构的三种模式【DDD】领域驱动设计实践——Domain层实现ABP框架-会话https://cn.abp.io领域驱动设计https://www.jianshu.com/p/89dfcd672d43https://blo
- Android 架构 UseCase最佳实践
fundroid
android架构
Android架构UseCase最佳实践前言UseCase的职责UseCase的命名UseCase的线程安全UseCase的签名依赖UseCase的引用透明UseCase的接口抽象前言Android官方的最新架构中引入了Domain(网域层or领域层),DomainLayer由一个个UseCase组成。但是由于团队套用官方新架构后没有正确地定义UseCase,无法发挥DomainLayer应有的架
- 红帽9.0版本CSA题目+答案 (模拟考题)
一叶知秋xj
linux运维开发docker
1、配置网络设置将node1配置为具有以下网络配置:主机名:node1.domain250.example.comIP地址:172.25.250.100子网掩码:255.255.255.0网关:172.25.250.254DNS服务器:172.25.250.254***第一题必须用nmcli做,只能用nmcli做,禁止修改配置文件***第一题必须用nmcli做,只能用nmcli做,禁止修改配置文件
- 领域驱动设计中的核心概念
能源革命
技术技术DDD领域驱动
领域驱动设计(DDD)的核心概念是理解和构建复杂系统的基础。1.领域(Domain)定义:领域是软件所解决的业务问题所在的范围,是业务逻辑和规则的集合。理解:领域是DDD的出发点,它定义了软件需要解决的问题空间。例如,在一个电商系统中,领域可能包括订单管理、用户管理、支付处理、库存管理等。重要性:明确领域可以帮助开发团队聚焦于业务的核心问题,避免被技术细节分散注意力。2.领域模型(DomainMo
- tcp常用网络接口 linux环境
gyc2727
tcp/iplinux网络
TCP(传输控制协议)网络通信是常见的网络应用形式,它提供了面向连接的、可靠的数据传输服务。TCP通信常用的接口主要包括以下几个方面:常用接口1.socket()intsocket(intdomain,inttype,intprotocol);功能:打开一个网络通讯端口,并返回一个文件描述符(socket描述符)。参数:domain:地址族,对于IPv4,指定为AF_INET。type:套接字类型
- PHP之Cookie和Session
0白露
PHPphp开发语言
在你有别的编程语言的基础下,你想学习PHP,可能要了解的一些关于cookie和session的信息。Cookie参数信息setcookie(name,value,expire,path,domain);name:Cookie的名称。value:Cookie的值。expire:Cookie的过期时间,可以是一个Unix时间戳(例如:time0)+3600表示一小时后过期),或者是一个具体的日期时间字
- #嵌入式笔面经分享#科大讯飞公司嵌入式硬件面经(第1面)
2301_79125642
java
DNS是什么DNS(DomainNameSystem)是一种用于将域名转换为IP地址的分布式命名系统。它充当7.124'40一个组产出最7.124'40一个组产出最多的是组长,是管理,这个组不正常。出一个小学数学应用题:在OSI七层模型?OSI(OpenSystemsInterconnection)七层模型是一种网络协议体系结构,用我想问一下如果我的项目是开源项目怎么办鼠鼠四非硕士,学了几个rto
- 计算机专业知识【小白必懂的 CIDR “/24” 表示法详解】
一勺菠萝丶
计算机专业知识网络服务器linux
一、引言在计算机网络的世界里,常常会遇到像“/24”这样奇怪的表示,对于刚接触网络知识的小白来说,这简直就像神秘的密码一样难以理解。二、什么是CIDR表示法(一)CIDR的定义CIDR是无类别域间路由(ClasslessInter-DomainRouting)的缩写,它是一种用于表示IP地址和子网掩码的简洁方式。在传统的网络分类(A类、B类、C类等)中,子网掩码的划分比较固定,而CIDR打破了这种
- 三次握手内部实现原理
yourkin666
网络
socket()创建一个新的套接字intsocket(intdomain,inttype,intprotocol);参数:domain:地址族,如AF_INET(IPv4),AF_INET6(IPv6)type:套接字类型,如SOCK_STREAM(TCP),SOCK_DGRAM(UDP)protocol:协议类型,通常为0(默认协议)返回值:成功返回套接字描述符,失败返回-1Linux操作系统流
- ai垂直领域和水平领域如何理解?
王摇摆
ChatGPT人工智能
在AI领域中,"垂直领域"和"水平领域"是两个相关但不同的概念。垂直领域(VerticalDomain):指的是在特定行业或领域中应用人工智能技术和解决方案的情况。在垂直领域中,AI技术被专门应用于解决该领域内的具体问题。例如,医疗保健、金融、零售、交通运输等都是垂直领域。在这些领域中,AI技术被用于医学诊断、风险评估、销售预测、智能交通管理等特定领域的应用。水平领域(HorizontalDoma
- hexo 上传后gitHub 中custom domain 被重置
shaoin_2
前端零碎githubgit
问题背景通过hexo构建的个人博客,托管在gitHub上,并在setting=>pages=>Customdomain中将自己的域名与gitHub路径绑定。这样可直接通过自己的域名访问博客了。问题描述项目在执行hexoclean=>hexogenerate=>hexodeploy后gitHub上的Customdomain填写的域名被重置了。解决问题在项目的source文件夹下添加一个CNAME文件
- 记录微信小程序中的遇到的问题,ios不支持gif,ios下语音播放
kay三石
工具的使用微信小程序ios
最近是在做一些微信小程序的工作,在后台中的代码没有什么问题的时候然而在小程序中我去一次次的踩了很多的坑,就比如这gif图片不支持在ios端播放,ios中的语音的播放的问题{{isactive==item_id?audiotime:''}}-->{{note.voiceTime!=null?note.voiceTime:'0'}}s-->{{domain.abbreviation}}:{{domai
- THINKPHP5获取当前页面URL信息
向宇it
#thinkphpthinkphp域名
想要获取当前页面的url信息,可以借助thinkphp自带的request类来获取当前的url信息使用\think\Request类$request=Request::instance();或者使用自带的助手函数$request=request();$request=Request::instance();//获取当前域名echo'domain:'.$request->domain().'';//
- 解决微信小程序下载图片报错:downloadFile:fail url not in domain list
gurenchang
微信小程序小程序
前言:最近在完成公司微信小程序点击按钮将微信图片下载到手机本地的时候就遇见了这个报错:downloadFile:failurlnotindomainlist,翻阅资料之后发现了解决方案,在这里给小伙伴们进行分享:我们先来看报错:downloadFile:failurlnotindomainlist的中文翻译是:downloadFile:failurl不在域列表中,这个时候我们就需要打开微信公众平台
- Kotlin DSL(Domain-Specific Language,领域特定语言)
tangweiguo03051987
kotlinpython开发语言
DSL(Domain-SpecificLanguage,领域特定语言)是一种专门为某个特定领域设计的编程语言。与通用编程语言(如Java、Kotlin等)相比,DSL通常具有更简洁的语法和更少的语法元素,这使得它更适合用于描述特定领域的概念和操作。在Kotlin中,DSL可以以多种方式实现,例如使用函数式编程、使用扩展函数、使用中缀表达式等。以下是实现DSL的示例://使用函数式编程funbuil
- 【网络安全】从NA到P1,我是如何扩大思路的?
秋说
web安全漏洞挖掘
未经许可,不得转载。本文涉及漏洞均已修复。文章目录正文正文在这篇文章中,我将向大家展示一个我发现的漏洞,该漏洞利用了一个硬编码的Basic认证头,获取了管理员权限。首先,假设公司域名为“target.com”。第一步是使用多种工具(如Amass、subfinder、findomain等)收集与该组织相关的所有子域名。当我收集到所有可能的子域名列表后,我通过httpx工具过滤出存活的子域名,以确保仅
- 计算机网络---DNS域名解析过程、输入url到页面显示过程
lh_freak
计算机网络
什么是DNSDNS,全称DomainNameSystem,域名系统,是一个记录域名和Ip地址相互映射的一个系统,能够将用户访问互联网时使用的域名地址转换成对应的IP地址,而不用使用者去记住数量众多的IP地址。通过域名得到域名对应的IP地址的过程被称为域名解析。DNS运行于UDP协议之上,使用的端口为53。域名结构解析域名结构是树状结构,树的最顶端代表根服务器,根的下一层就是由我们所熟知的.com、
- 若依导出没有显示时间或者显示时间格式不对
蹦跑的蜗牛
java若依
若依导出没有显示时间或者显示时间格式不对在导出输出时,没有显示时间或者显示时间格式不对,会出现以下的数据样式好的,直接修改对应的domain就行,没有这个参数的直接加上这个参数,因为它是继承的,你看不见/**创建时间*/@JsonFormat(pattern="yyyy-MM-ddHH:mm:ss")@Excel(name="创建时间",width=30,dateFormat="yyyy-MM-d
- arxiv论文爬虫
plasma-deeplearning
pycharmar爬虫
文章目录readmeArxivInterestingPapersCrawlerDescription:Thetimerangeofthepaperdownloading:Themodeofthedownloading:Therootofthedownloading:Thedomainofthedownloading:Thecustomizedkeywords:Thecustomizedkeywor
- 软件工程精选习题集(全答案)
刘明皓00
软件工程低代码课程设计笔记经验分享考研面试
目录1.名词解释极限编程(Extremeprogramming)状态转换图(StateTransformDiagram)问题域(ProblemDomain)功能点技术(FunctionPoint)PAD问题分析图(ProblemAnalysisDiagram)实体-关联图(EntityRelationshipDiagram)。软件危机(SoftwareCrisis)软件质量保证(SoftwareQ
- 如何设置AD域用户仅登录到指定的计算机?AD域管理软件
ad前端
一什么是AD域?简单理解:ActiveDirectory域内的directorydatabase(目录数据库)是被用来存储用户账户、计算机账户、打印机和共享文件夹等对象,而提供目录服务的组件就是ActiveDirectory(活动目录)域服务(ActiveDirectoryDomainService,ADDS),它负责目录数据库的存储、添加、删除、修改与查询等操作。一般适用于一个局域网内。在AD域
- b s架构 网络安全 网络安全架构分析
黑客Ash
web安全架构网络
目录文章目录目录网络安全逻辑架构微分段(Micro-segmentation)防火墙即服务(FirewallasaService,FWaaS)安全网络网关(Securewebgateway)净化域名系统(SanitizedDomainNameSystem,S-DNS)网络安全策略管理(NetworkSecurityPolicyManagement,NSPM)网络防火墙(Networkfirewal
- 文章精读篇——用于遥感小样本语义分割的可学习Prompt
LiXiang like coding吗
学习prompt人工智能
题目:LearnablePromptforFew-ShotSemanticSegmentationinRemoteSensingDomain会议:CVPR2024Workshop论文:10.48550/arXiv.2404.10307相关竞赛:https://codalab.lisn.upsaclay.fr/competitions/17568年份:2024任务背景小样本语义分割(Few-shot
- 领域模型介绍
阿湯哥
架构
领域模型介绍领域模型(DomainModel)是软件系统中用于抽象和表达业务逻辑的核心结构,它将复杂的业务问题转化为代码中的对象、规则和交互关系,帮助开发者以业务语言构建系统。领域模型的核心目标是高内聚、低耦合,通过清晰的边界(BoundedContext)隔离不同业务模块,确保代码与业务需求高度一致。领域模型的核心元素及经典案例我们以电商系统的订单处理流程为例,说明领域模型的核心元素如何协作。1
- PHP,安卓,UI,java,linux视频教程合集
cocos2d-x小菜
javaUIPHPandroidlinux
╔-----------------------------------╗┆
- 各表中的列名必须唯一。在表 'dbo.XXX' 中多次指定了列名 'XXX'。
bozch
.net.net mvc
在.net mvc5中,在执行某一操作的时候,出现了如下错误:
各表中的列名必须唯一。在表 'dbo.XXX' 中多次指定了列名 'XXX'。
经查询当前的操作与错误内容无关,经过对错误信息的排查发现,事故出现在数据库迁移上。
回想过去: 在迁移之前已经对数据库进行了添加字段操作,再次进行迁移插入XXX字段的时候,就会提示如上错误。
&
- Java 对象大小的计算
e200702084
java
Java对象的大小
如何计算一个对象的大小呢?
 
- Mybatis Spring
171815164
mybatis
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
CustomerService userService = (CustomerService) ac.getBean("customerService");
Customer cust
- JVM 不稳定参数
g21121
jvm
-XX 参数被称为不稳定参数,之所以这么叫是因为此类参数的设置很容易引起JVM 性能上的差异,使JVM 存在极大的不稳定性。当然这是在非合理设置的前提下,如果此类参数设置合理讲大大提高JVM 的性能及稳定性。 可以说“不稳定参数”
- 用户自动登录网站
永夜-极光
用户
1.目标:实现用户登录后,再次登录就自动登录,无需用户名和密码
2.思路:将用户的信息保存为cookie
每次用户访问网站,通过filter拦截所有请求,在filter中读取所有的cookie,如果找到了保存登录信息的cookie,那么在cookie中读取登录信息,然后直接
- centos7 安装后失去win7的引导记录
程序员是怎么炼成的
操作系统
1.使用root身份(必须)打开 /boot/grub2/grub.cfg 2.找到 ### BEGIN /etc/grub.d/30_os-prober ### 在后面添加 menuentry "Windows 7 (loader) (on /dev/sda1)" { 
- Oracle 10g 官方中文安装帮助文档以及Oracle官方中文教程文档下载
aijuans
oracle
Oracle 10g 官方中文安装帮助文档下载:http://download.csdn.net/tag/Oracle%E4%B8%AD%E6%96%87API%EF%BC%8COracle%E4%B8%AD%E6%96%87%E6%96%87%E6%A1%A3%EF%BC%8Coracle%E5%AD%A6%E4%B9%A0%E6%96%87%E6%A1%A3 Oracle 10g 官方中文教程
- JavaEE开源快速开发平台G4Studio_V3.2发布了
無為子
AOPoraclemysqljavaeeG4Studio
我非常高兴地宣布,今天我们最新的JavaEE开源快速开发平台G4Studio_V3.2版本已经正式发布。大家可以通过如下地址下载。
访问G4Studio网站
http://www.g4it.org
G4Studio_V3.2版本变更日志
功能新增
(1).新增了系统右下角滑出提示窗口功能。
(2).新增了文件资源的Zip压缩和解压缩
- Oracle常用的单行函数应用技巧总结
百合不是茶
日期函数转换函数(核心)数字函数通用函数(核心)字符函数
单行函数; 字符函数,数字函数,日期函数,转换函数(核心),通用函数(核心)
一:字符函数:
.UPPER(字符串) 将字符串转为大写
.LOWER (字符串) 将字符串转为小写
.INITCAP(字符串) 将首字母大写
.LENGTH (字符串) 字符串的长度
.REPLACE(字符串,'A','_') 将字符串字符A转换成_
- Mockito异常测试实例
bijian1013
java单元测试mockito
Mockito异常测试实例:
package com.bijian.study;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import org.junit.Assert;
import org.junit.Test;
import org.mockito.
- GA与量子恒道统计
Bill_chen
JavaScript浏览器百度Google防火墙
前一阵子,统计**网址时,Google Analytics(GA) 和量子恒道统计(也称量子统计),数据有较大的偏差,仔细找相关资料研究了下,总结如下:
为何GA和量子网站统计(量子统计前身为雅虎统计)结果不同?
首先:没有一种网站统计工具能保证百分之百的准确出现该问题可能有以下几个原因:(1)不同的统计分析系统的算法机制不同;(2)统计代码放置的位置和前后
- 【Linux命令三】Top命令
bit1129
linux命令
Linux的Top命令类似于Windows的任务管理器,可以查看当前系统的运行情况,包括CPU、内存的使用情况等。如下是一个Top命令的执行结果:
top - 21:22:04 up 1 day, 23:49, 1 user, load average: 1.10, 1.66, 1.99
Tasks: 202 total, 4 running, 198 sl
- spring四种依赖注入方式
白糖_
spring
平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过spring容器帮我们new指定实例并且将实例注入到需要该对象的类中。依赖注入的另一种说法是“控制反转”,通俗的理解是:平常我们new一个实例,这个实例的控制权是我
- angular.injector
boyitech
AngularJSAngularJS API
angular.injector
描述: 创建一个injector对象, 调用injector对象的方法可以获得angular的service, 或者用来做依赖注入. 使用方法: angular.injector(modules, [strictDi]) 参数详解: Param Type Details mod
- java-同步访问一个数组Integer[10],生产者不断地往数组放入整数1000,数组满时等待;消费者不断地将数组里面的数置零,数组空时等待
bylijinnan
Integer
public class PC {
/**
* 题目:生产者-消费者。
* 同步访问一个数组Integer[10],生产者不断地往数组放入整数1000,数组满时等待;消费者不断地将数组里面的数置零,数组空时等待。
*/
private static final Integer[] val=new Integer[10];
private static
- 使用Struts2.2.1配置
Chen.H
apachespringWebxmlstruts
Struts2.2.1 需要如下 jar包: commons-fileupload-1.2.1.jar commons-io-1.3.2.jar commons-logging-1.0.4.jar freemarker-2.3.16.jar javassist-3.7.ga.jar ognl-3.0.jar spring.jar
struts2-core-2.2.1.jar struts2-sp
- [职业与教育]青春之歌
comsci
教育
每个人都有自己的青春之歌............但是我要说的却不是青春...
大家如果在自己的职业生涯没有给自己以后创业留一点点机会,仅仅凭学历和人脉关系,是难以在竞争激烈的市场中生存下去的....
&nbs
- oracle连接(join)中使用using关键字
daizj
JOINoraclesqlusing
在oracle连接(join)中使用using关键字
34. View the Exhibit and examine the structure of the ORDERS and ORDER_ITEMS tables.
Evaluate the following SQL statement:
SELECT oi.order_id, product_id, order_date
FRO
- NIO示例
daysinsun
nio
NIO服务端代码:
public class NIOServer {
private Selector selector;
public void startServer(int port) throws IOException {
ServerSocketChannel serverChannel = ServerSocketChannel.open(
- C语言学习homework1
dcj3sjt126com
chomework
0、 课堂练习做完
1、使用sizeof计算出你所知道的所有的类型占用的空间。
int x;
sizeof(x);
sizeof(int);
# include <stdio.h>
int main(void)
{
int x1;
char x2;
double x3;
float x4;
printf(&quo
- select in order by , mysql排序
dcj3sjt126com
mysql
If i select like this:
SELECT id FROM users WHERE id IN(3,4,8,1);
This by default will select users in this order
1,3,4,8,
I would like to select them in the same order that i put IN() values so:
- 页面校验-新建项目
fanxiaolong
页面校验
$(document).ready(
function() {
var flag = true;
$('#changeform').submit(function() {
var projectScValNull = true;
var s ="";
var parent_id = $("#parent_id").v
- Ehcache(02)——ehcache.xml简介
234390216
ehcacheehcache.xml简介
ehcache.xml简介
ehcache.xml文件是用来定义Ehcache的配置信息的,更准确的来说它是定义CacheManager的配置信息的。根据之前我们在《Ehcache简介》一文中对CacheManager的介绍我们知道一切Ehcache的应用都是从CacheManager开始的。在不指定配置信
- junit 4.11中三个新功能
jackyrong
java
junit 4.11中两个新增的功能,首先是注解中可以参数化,比如
import static org.junit.Assert.assertEquals;
import java.util.Arrays;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runn
- 国外程序员爱用苹果Mac电脑的10大理由
php教程分享
windowsPHPunixMicrosoftperl
Mac 在国外很受欢迎,尤其是在 设计/web开发/IT 人员圈子里。普通用户喜欢 Mac 可以理解,毕竟 Mac 设计美观,简单好用,没有病毒。那么为什么专业人士也对 Mac 情有独钟呢?从个人使用经验来看我想有下面几个原因:
1、Mac OS X 是基于 Unix 的
这一点太重要了,尤其是对开发人员,至少对于我来说很重要,这意味着Unix 下一堆好用的工具都可以随手捡到。如果你是个 wi
- 位运算、异或的实际应用
wenjinglian
位运算
一. 位操作基础,用一张表描述位操作符的应用规则并详细解释。
二. 常用位操作小技巧,有判断奇偶、交换两数、变换符号、求绝对值。
三. 位操作与空间压缩,针对筛素数进行空间压缩。
&n
- weblogic部署项目出现的一些问题(持续补充中……)
Everyday都不同
weblogic部署失败
好吧,weblogic的问题确实……
问题一:
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: URL [zip:E:/weblogic/user_projects/domains/base_domain/serve
- tomcat7性能调优(01)
toknowme
tomcat7
Tomcat优化: 1、最大连接数最大线程等设置
<Connector port="8082" protocol="HTTP/1.1"
useBodyEncodingForURI="t
- PO VO DAO DTO BO TO概念与区别
xp9802
javaDAO设计模式bean领域模型
O/R Mapping 是 Object Relational Mapping(对象关系映射)的缩写。通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据。在O/R Mapping的世界里,有两个基本的也是重要的东东需要了解,即VO,PO。
它们的关系应该是相互独立的,一个VO可以只是PO的部分,也可以是多个PO构成,同样也可以等同于一个PO(指的是他们的属性)。这样,PO独立出来,数据持