`
lt1988
  • 浏览: 17833 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

the life cycle of domain object

阅读更多

在对象生命周期中有两个难点问题:

1 )保存对象的完整性

2 )避免在对象生命周期中的逻辑处理中使其状态变得混乱

解决问题主要有三方面的方法:

1 )使用聚合,简化对象之间的复杂关系?

2 )使用工厂,解决对象创建,重新组合(反序列化?)的问题

3 )使用资源库,解决对象的存储,查询问题

 

1聚合

聚合是一些有关联的可以被看做是一个单元的对象集合,只有一个可根节点。使用聚合是通过对业务规则的熟悉,来减少业务上没有需要的关联关系,尽可能简单化对象的关系网。比如说车与轮子,轮胎,活塞就可以看成一个聚合,因为很少有人去直接访问那些小部件而不通过车本身,但是引擎和车不属于一个聚合。

业务规则是在对象数据发生变化时必须保证的,聚合可以有效保证某些业务规则。

例子:订单的完整性,并发问题

如果不使用聚合,那么会出现订单,订单项可以被两人同时编辑,出现并发问题。

如果把订单,订单项,商品看成一个聚合,那么在改变商品价格后,新加入同样商品会出现问题。

只有理解了业务规则,新加入订单项还是按照最早加入商品时的价格计算,这样把订单,订单项看成一个聚合,这样有效保证业务规则,对业务规则的了解是很重要的!

2工厂

 我的理解是如果在构建类似聚合这样比较复杂关系的对象集合时,可以使用专门的工厂来封装对象的创建过程。

工厂的好处:

1)整体构建,构建的业务逻辑就在这一个地方,易维护 。2)基于接口构建,耦合低。

3资源库

使用接口抽象对象的读取操作,使客户端更关注于业务,资源库更关注于数据的读写,接口能带来低耦合。

对资源库的查询两种方式:

1)硬编码查询,如拼凑sql语句。2)使用规格说明,例如hibernate?

对于开发人员来说,需要关注资源库的实现,有助于调优。

还有一些需要注意的问题

1)与工厂之间的关系,可以互相调用,合作。

2)于框架的关系,需要在框架内工作。

3)为关系数据库设计对象,这个问题感觉很复杂啊。。。

 

分享到:
评论

相关推荐

    software processes and Life Cycle Models

    Since process engineers...• software process models and life cycle models • software process management, deployment and governance • software process improvement (including assessment and measurement)

    Life Cycle Assessment of Coal-fired Power Production

    - **报告背景**:本报告由美国政府机构赞助编制,详细分析了燃煤发电厂的生命周期评估(Life Cycle Assessment, LCA),旨在为政策制定者、能源行业及公众提供科学依据。 - **责任声明**:美国政府及其下属机构不对...

    Social Life Cycle

    《Social Life Cycle》 在IT领域,"Social Life Cycle"可能指的是将社交元素融入到软件开发生命周期(Software Development Life Cycle, SDLC)中的概念。这个主题涉及到如何在开发过程中考虑用户互动、社区参与和...

    Enhancing the Development Life Cycle to Produce Secure Software

    Enhancing the Development Life Cycle benefited greatly from contributions and critiques by participants in the Software Assurance Forum. The Software Assurance Forum was established jointly by the DHS...

    The system development life cycle.xmind

    The system development life cycle.xmind

    领域驱动设计(精简版)

    A Model Expressed in Software 81 Chapter 6: The Life Cycle of a Domain Object 123 Chapter 7: Using the Language: An Extended Example 163 Part III Chapter 8: Breakthrough 193 Chapter 9: Making Implicit...

    NXP SECURE PLATFORM: SECURING THE PRODUCT LIFE CYCLE

    NXP SECURE PLATFORM: SECURING THE PRODUCT LIFE CYCLE

    the game of life

    the game of life,C++,亲测可以运行。Main.cpp #include "utility.h" #include "life.h" void main() // Program to play Conway's game of Life. /* Pre: The user supplies an initial configuration of living ...

    BS 22040-2021 Life cycle management of concrete structures

    BS 22040-2021 Life cycle management of concrete structures.pdf

    The Emotional Life of Your Brain.pdf

    The Emotional Life of Your Brain How Its Unique Patterns Affect the Way You Think, Feel, and Live--and How You Can Change Them

    Software Development Life Cycle

    Software Development Life Cycle

    radar life cycle calculation

    radar life cycle calculation

    程序人生The_life_of_programmer

    The_life_of_programmer 这些文章包括普通的,有名的的程序员的经历,还有一些让人深思的程序员问题, 我把它们分成奋斗篇,中国篇,外国篇,反思篇,如果你想进入程序设计的世界,这 些文章应该能给你一些启示,也一定能...

    program_life_cycle

    程序生命周期(Program Life Cycle)是指一个程序从构思到最终关闭的整个过程。这个过程可以分为五个主要阶段:预程序准备、程序启动、程序设置、程序效益交付以及程序关闭。每个阶段都有其特定的目的和一般活动,...

    e virus use the host cellular machinery for many aspects of its life cycle

    **标题解读:**“e virus use the host cellular machinery for many aspects of its life cycle”(E病毒在其生命周期的许多方面利用宿主细胞机制) **描述解读:**该描述重复了标题中的信息,强调了病毒在其生命...

    spring bean life cycle

    在Spring框架中,Bean生命周期是核心概念之一,它涉及到Bean的创建、初始化、使用和销毁等阶段。了解和掌握Bean生命周期对于开发高质量的Spring应用至关重要。以下是对Spring Bean生命周期的详细解析。...

    Product modularization for life cycle engineering

    ### 产品生命周期工程中的模块化设计 #### 模块化设计概述 模块化设计是一种将产品分解为可独立制造、装配和服务的可拆卸模块的方法。这种方法不仅有助于提高产品的灵活性和适应性,还能够简化生产流程,降低维护...

Global site tag (gtag.js) - Google Analytics