design(ddd)开源框架

design(ddd)开源框架

ID:11709181

大小:1.45 MB

页数:71页

时间:2018-07-13

design(ddd)开源框架_第1页
design(ddd)开源框架_第2页
design(ddd)开源框架_第3页
design(ddd)开源框架_第4页
design(ddd)开源框架_第5页
资源描述:

《design(ddd)开源框架》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、JdonFrameworkDomain-DrivenDesign(DDD)开源框架banq(jdon.com)SimplifytheBestJdonFramework=DomainModel+In-memory+Events.能够在一两个小时内快速开发简单应用系统。能够在此架构基础上无缝平滑发展成为一个可方便维护、可灵活拓展、可伸缩的中大型系统。JdonFramework(以下简称JF)就是这样一个简单易用设计理念一直国际领先的轻量Java框架。JavaEE多层架构MVC表现层struts1.xStruts2JSFTapestryWicket持久层Hib

2、ernateSQLIBatisNoSQL服务业务层JdonFramework领域模型JdonFramework特点DDD:领域驱动设计,通过突出领域模型作为整个系统的中心作用,以领域模型的设计驱动表现层和数据库的开发设计。IOC或DI:完全自动识别的依赖注射模式,可以完全摆脱类与类之间的依赖关系,大大提高开发效率和重构速度。In-memoryCache:内置缓存自动支持,借助Terracotta能够无缝将应用程序拓展到云计算架构。EvansDDDDDD特点统一语言:一个无处不在(ubiquitous)的语言,项目中所有人统一交流的语言。减少沟通疑惑,减少

3、传达走样。使得软件更加适合需求。统一领域模型:领域专家和程序员统一使用一种模型,没有数据库数据表等专业软件技术干扰。专门的业务领域层:领域层除了业务没有其他,没有软件架构框架等等底层技术。DDD优点坏设计:失血贫血模型将业务逻辑写在Servlet、Jsp、MVC的Controller、SOA的服务中技术架构驱动数据模型,数据模型只是一个数据的集合。模型对象中只有setter/getter方法,无其它业务方法,称为失血或贫血模型。失血模型导致软件复杂时,可扩展性和性能大幅度降低,难于提升。随着时间推移,开发效率降低。JF架构特点领域模型驱动技术架构;领域模

4、型是富充血模型,类似人类的DNA,是各种重要事件导向的开关。用户触发事件,事件直接激活领域模型的方法函数,再通过异步事件驱动技术活动,如存储数据库或校验信用卡有效性等。2009年推出DomainModel+In-memory+Events.2001年Martinfowler的LMAX架构推荐In-memory+EventSourcing架构。JF的五种模型组件一.实体聚合根对象元注释@Model;二.服务Service元注释@Service;三.普通类组件构件@Component;四.生产者Prodcuer-消费者模型@send@Consumer;五.拦

5、截器@Interceptor,首先需要导入点@Introduce;Allincom.jdon.annotation.*领域模型和技术组件@Model领域模型,包括实体模型值对象和领域服务,与技术架构无关。相当于鱼;生存空间是缓冲器中@Service/@Component技术组件架构,用以支撑领域模型在计算机系统运行的支撑环境,相当于鱼生活的水。空间在Contextcontainer,例如ServletContext中。两者以DomainEvents模式交互:异步命令。DomainEvents在EvansDDD实现过程中,经常会碰到实体和服务Service

6、以及Repository交互过程,这个交互过程的实现是一个难点,也是容易造成失血贫血模型的主要途径。DomainEvents提出解决方案,JF提供的异步观察者模式为DomainEvent实现提供更优雅的解决方案。详细文章见:http://www.jdon.com/jivejdon/thread/37289技术听命于领域模型调遣一个领域模型不但包含需要被持久化的业务数据,同时还有业务操作,并且有自己的继承体系。MartinFowler(简称MF)认为具备这些才可称为是一个领域模型。很多人对MF这段理解以为使用Hibernate等ORM框架就可以,JdonF

7、ramework不认为这样,因为当使用这些ORM框架时,还需要在模型之外实现操作xxx.save(model);Jdon框架提供了DomainEvents,就可以在模型内部调用Hiberbate的xxx.save(model)DoaminModel+DomainEvents+Hibernate才是真正实现MF的这段领域模型定义。DomainEvents图符合CQRS(命令查询分离)UserinterfaceServiceDomainEvent/MessageBUSInfrastructureQuery/ReportingCommandsCommandsE

8、vents领域事件起点:内存中实体模型使用DDD从需求中获得实体模型后,使用JF

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。