业务对象(Business Object,BO)是对数据进行检索和处理的组件。是简单的真实世界的软件抽象。业务对象通常位于中间层或者业务逻辑层。可以由Service层输出的封装业务逻辑的对象。
必要条件
⒈由状态和行为组成
⒉表达了来自业务域的一个人,地点,事物或概念
⒊可以重用
分类
1.实体业务对象:
表达了一个人,地点,事物或者概念.根据业务中的名词从业务域中提取的.如客户,订单,物品.在EJB应用程序中,一般为实体Bean.在传统的web应用程序中,可能是包含业务应用的状态和行为的普通javabean.
2.过程业务对象:
表达应用程序中业务处理过程或者工作流程任务.通常依赖于实体业务对象,是业务的动词.在EJB应用程序中,通常是模型的会话bean,或者消息驱动bean.在非EJB应用中,可能是javabean,包含特定的行为,作为应用程序的管理者或者控制者.
3.事件业务对象:
表达应用程序中由于系统的一些操作造成或产生的一些事件.
业务需求
假设有一业务需求:订单和物品,订单中可以有很多物品,每一个物品都有自己的ID,名称,单价和数量,而订单有自己的ID,编码,总价。
订单在传输过程中经历了如下操作,先创建一个订单实例,在这个订单实例中添加了两个物品,并且计算了订单的总价,但是在传送走后发现订单的代码被改动过了,需要重新找回原来的订单代码,最后这个订单实例被序列化并存储。
BO支持序列化和反序列化,可以轻易地将BO的Java实例转换为一个XML文件或者一个流保存起来,并且在需要的时候,将这个BO从XML或者流中转换回一个Java实例。