DDD领域模型和充血对象】的更多相关文章

DDD领域模型 官方说法 领域驱动设计,它是对面向对象的的分析和设计(OOAD,Object Orient Analysis Design)的一个补充,对技术框架进行了分层规划,同时对每个类进行了策略和类型划分.领域模型是领域驱动的核心 ,采用DDD的设计思想,业务逻辑不再集中在几个大型的类上,而是在大量相对小的领域对象上,这些类具有自己的状态和行为,每个类都是完成的独立的,并与现实领域的业务对象形成一种映射.基于DDD的架构设计,保证了系统的可维护性,扩展性和敏捷性,在处理复杂业务逻辑方面有着…
原文:DDD中的值对象如何用NHibernate进行映射 <component/>是NHibernate中一个有趣的特性,即是用来映射DDD(Data-Display-Debuger)概念形式的值类型.这是一种创建比物理数据模型具有更高粒度的对象模型的方式.  举例,   看下表中的数据:    对应的对象模型:    它们十分不同,在一个单一表中包括了所有物理数据,我们想在对象模型中调整为用两个分离的类型来映射该表.这就是<component/>的用法:  <class n…
在工程DDD.Domain中文件夹ModelPermission新建类:BAS_Object public partial class BAS_Obejct:AggreateRoot { //仓储接口 private IRepository<BAS_Obejct> irepository; //构造函数 public BAS_Obejct(IRepository<BAS_Obejct> irepository) { this.irepository = irepository; }…
权限分配和权限查找. 在DDD.Domain工程中新建:BAS_PermissionAssign类 public partial class BAS_PermissionAssgin:AggreateRoot { private IRepository<BAS_PermissionAssgin> irepository; public BAS_PermissionAssgin(IRepository<BAS_PermissionAssgin> irepository) { this…
实现权限的领域对象:BAS_Permission public partial class BAS_Permission:AggreateRoot { private IRepository<BAS_Permission> irepository; public BAS_Permission(IRepository<BAS_Permission> irepository) { this.irepository = irepository; } /// <summary>…
BAS_PRService岗位和角色服务: public class BAS_PRService { //岗位 private IRepository<BAS_Post> irepositorypost; //角色 private IRepository<BAS_Role> irepositoryrole; //岗位和角色 private IRepository<BAS_PR> irepositorypr; BAS_PR bas_pr; public BAS_PRSer…
权限分为:数据权限和功能权限 数据权限: 查询提供附加表达式的支持: //提供附加表达式的支持 List<TAggreateRoot> GetByCondition(Expression<Func<TAggreateRoot, bool>> condition, Expression<Func<TAggreateRoot,bool>> definecondition); //返回聚合根分页的方法 List<TAggreateRoot>…
在DDD.Domain工程文件夹Repository下创建RequestPage类: public class RequestPage { public RequestPage(int pagesize, int currentpage, string orderproperty, string order) { this.PageSize = pagesize; this.CurrentPage = currentpage; this.Orderproperty = orderproperty…
添加下订单的值对象: public partial class CustomerInfo:ValueObject { /// <summary> /// 下订单的值对象 /// </summary> /// <param name="customer">Customer值对象</param> /// <param name="address">Address值对象</param> public…
领域模型的基本构造块: 1.实体(Entity):有业务生命周期,使用标识进行跟踪. 2.值对象(Value Object):无业务生命周期,用来描述实体. 3.服务(Service):无状态的行为类型,表示某种能力. 4.聚合(Aggregate): 1).聚合是一簇相关联的对象,出于封装的目的,将这些对象作为一个单元(业务.持久化和并发). 2).每个聚合都有一个边界和一个根. 3).边界定义了聚合中应该包含什么. 5.聚合根(Aggregate Root) 1).根是聚合中唯一允许被外部引…