多层结构的业务实体在层间传递时常常需要根据层次裁减,或者根据功能选择某些信息,特别时在分布式层部署环境中,如果实体包含的信息太多,势必增加序列化与传递的开销,然后,如果把实体拆开,传递时使用简单变量,又有可能造成变量过多,或者对需求变化不灵活的麻烦
在这种情况下,使用实体控制层能够解决这个问题
你可以把实体控制层设想为一个衔接外部接口和内部功能的桥梁
实体控制层根据具体功能和层次,从传入的实体中,选择必要的信息,以新实体,或者简单变量,或者直接使用清理过的原实体这集中方式传递到具体的内部功能
举个例子TopicDataCenterEntry有这样一个方法,Post(TopicInfo,ConfigInfo)传入一个帖子和该论坛的配置,而TopicDataCenter需要根据配置中的信息,选取合适的缓存策略,比如内存缓存MemCache.Post,静态文件机制StaticFile.Post,这些都是分布式的实现,所以传入的实体必然需要尽量精简,而ConfigInfo包含了一个论坛所有的配置信息,所以传入的信息量很大,而使用的只是很少一部分.
看到这里,有的看官可能会想,那么TopicDataCenterEntry的Post方法里面不要传入ConfigInfo,直接传入需要使用的信息不就可以了吗?
假如所需要的信息是很确定的,那么却是应该这样做,然而,由于内部需要实现切换机制,不同的机制需要配置文件的不同信息,而且一旦修改为简单变量的传递,以后凡是发现某些内容需要配置在配置文件里,而不写死,就必须修改函数签名,导致上层结构的变化
这个时候实体控制层就派上用场了,TopicDataCenterEntry里面加上对应的逻辑,对于内存缓存,调用Post(TopicInfo,ConfigInfo.LifeTime)传入该帖子的存活时间,而对应静态帖子,传入ConfigInfo.TemplateFilename模版文件名,Encoding等等不同的信息,这样TopicDataCenterEntry就成为了实体控制层,保证了对上层的不变与灵活性,而又保证了在分布式结构中的性能
分享到:
相关推荐
分层与职责 PersonalManagerModel 定义客户端和服务端共用的实体、接口、类型等 PersonalManagerServerBizLogic 服务端业务逻辑的实现,只提供功能,不区分调用者,此template简单,没有独立出DAC层 ...
计算机硬件系统: 计算机硬件系统是构成计算机物理实体的所有部件的集合,包括核心组件以及外设。其主要组成部分包括: 中央处理单元 (CPU):作为计算机的大脑,负责执行指令、进行逻辑运算和数据处理。 内存:...
显示层与控制层的分离。既降低控制层的复杂度。同时也为系统升级为BS结构奠定坚实的基础。 实体层。实体层是后台数据显示的载体。 业务层。系统业务数据之间的关联操作均在此处理。如收货后系统更新采购单收货数量。...
显示层与控制层的分离。既降低控制层的复杂度。同时也为系统升级为BS结构奠定坚实的基础。实体层。实体层是后台数据显示的载体。业务层。系统业务数据之间的关联操作均在此处理。如收货后系统更新采购单收货数量。等...
显示层与控制层的分离。既降低控制层的复杂度。同时也为系统升级为BS结构奠定坚实的基础。实体层。实体层是后台数据显示的载体。业务层。系统业务数据之间的关联操作均在此处理。如收货后系统更新采购单收货数量。等...
计算机硬件系统: 计算机硬件系统是构成计算机物理实体的所有部件的集合,包括核心组件以及外设。其主要组成部分包括: 中央处理单元 (CPU):作为计算机的大脑,负责执行指令、进行逻辑运算和数据处理。 内存:...
一、使用springcloud+MyBatis+MySql 1.1.Maven新建父项目,在pom.xml加入mysql的依赖 ...1.6.建立控制层服务器模块EurekaClient,引入Feign组件,调用业务层的控制器组件。 1.7.使用页面访问服务器的控制器。
显示层与控制层的分离。既降低控制层的复杂度。 同时也为系统升级为BS结构奠定坚实的基础。实体层。实体层是后台数据显示的载体。业务层。系统业务数据之间的关联操作均在此处理。 如收货后系统更新采购单收货数量。...
控制层:控制层提供互联网访问,控制层的义务是控制访问请求跳转到接口业务层,监控用户状态,角色权限的拦截处理。 接口业务层:利用防火墙限制只允许指定的内网机器访问,接口业务层的义务是处理具体业务实现,对...
网关,分配路由,用于调用管理类的控制层,无需关注端口,路由分配转发 xc-ui 后台页面,使用 react技术开发 增加mybatis多数据源操作,引用seate1.2处理分布式事务,多数据源事务,引用shardingSphere进行分库分表...
属性:用椭圆形表示,并用无向边将其与实体连接起来; 联系:用菱形表示,菱形框内标明联系名,并用无向边连接有关实体,同时在无向边旁 标明联系类型。 3)实体间的联系 实体间的联系主要有两实体、两个以上实体及...
学生需要了解数据库管理系统(DBMS)的基本原理,包括数据存储、索引、事务处理和并发控制。 难点可能在于优化数据库性能、备份和恢复策略,以及安全性管理。 应用开发: 学生可能需要将数据库与应用程序集成,以...
Oracle之所以得到广大用户的青睐,其主要原因在于:支持多用户、大事务量的事务处理、提供标准操作接口、实施安全性控制和完整性控制、支持分布式数据处理、具有可移值性、可兼容性和可连接性。 (7)
数据访问层使用Java持久化技术,如Hibernate或MyBatis,与数据库进行交互。通过定义实体类和数据库表的映射关系,实现数据的增删改查操作。同时,源码还采用连接池技术来提高数据库连接的效率,提供数据的可靠性和...
系统层级 系统层级自下而上共五层,分别为设备层、控制层、车间层、企业层和协同层。智能制造的系统层级体现了装备的智能化和互联网协议(IP)化,以及网络的扁平化趋势。具体包括: (1)设备层级包括传感器、仪器仪表...
361CRM平台的平台服务层与通常的应用服务不同,它是实时运行的服务,平台服务层有相应的任务调度机制,邮件服务、消息队列以及实时的工作流引擎等,这些服务都是实时运行的,因此当企业用户的业务对象或者业务流程...
分布式设计模式和实践(如微服务,容器编排和云计算)已经让我们的生产环境变得越来越动态和异构,我们认为传统的安全实践(例如仅仅基于四层网络控制策略的访问控制)在这种复杂性下难以扩展,急需一套全新的IAM...
(14)实体层、数据层、业务层、操作事件层可配置 (15)支持SQL语句操作、支持Lamda表达式与SQL联合查询、支持读写分离 (16)多种关系类型数据库支持,目前支持的数据库类型有mssql,mysql,oracle,可扩展支持...