最近在做保险行业的iPad客户端应用,在项目过程中引入了领域模型设计和MVC的设计思想,引发了一番争论。从实践过程来看领域建模更多的是一种分析和设计业务模型的一种方法。由于在ios开发中并没有像J2EE开发企业应用这样成熟的开发框架,MVC更多的应用在表现层的开发,UIViewController严格来划分应当都属于View(视图层),这也不怪苹果在ios上更多是针对小应用或者游戏的开发的精简版。
个人认为不论在实际开发中是否引入领域模型层,都可以采用领域模型来分析业务,而在实际开发中领域模型层和J2EE现在广泛采用的Service层有相似之处。都是对业务逻辑的封装,Service层的引入来自于Controller层和贫血型模型层,由于随着业务逻辑的复杂度提升,Controller除了处理应用逻辑同时处理领域逻辑,造成Controller过重,从而将通用的业务逻辑提取出Service层作为封装和复用。贫血的模型从实际开发中更多是基于表的开发模式,从设计库表作为项目的核心,辅以业务流程图,最终实现为一个一个的Service。而领域建模从设计开始不关心数据存储和表现层,而是将业务模型抽象成一组相互协作的领域类,在类与类之间运用各种面向对象技术,使实际的业务映射成为类与类之间的关系。
在我们的实际开发过程中,大部分的和数据相关的都不是数据库存储的,更多的是接口的调用。在系统中实现业务逻辑的方法有很多,常用的Service+实体类起到了领域模型是起到同样的作用的,至于谁好谁坏,我觉得每个人的视角不同,做惯了J2EE的我想更容易接受Service+实体类的模式。
关于领域模型,100个人有101种领域模型,很难说谁的好谁的不好,只存在谁的好用谁的不好用。同时我们看到实际开发过程是一个除了代码,系统架构也在不断重构的过程。
在客户端开发过程中使用领域驱动是否大材小用了呢?我觉得一个领域驱动是一种习惯,一旦掌握了就不太愿意采用其他的设计方法,即使它的业务逻辑很简单。第二,领域建模是一种设计方法,与具体的开发架构没有必然的联系,团队可以选择自己熟悉的开发框架来做。
写的有些乱,全当给自己备案,有机会把实际项目中的设计总结一下。
分享到:
相关推荐
- **建筑设计**:在建筑可视化项目中,设计师可以将电动移动门3D模型整合进建筑物的模型中,以展示其在实际环境中的外观和功能。 - **室内设计**:在室内设计中,模型可以帮助设计师规划空间布局,考虑开门方式、...
尤其在移动开发领域,Delphi提供了一套完整的解决方案,让开发者可以使用一套代码在多个平台上构建原生应用,包括iOS、Android、Windows等。本文将深入探讨一个基于Delphi的移动开发实例,旨在帮助初学者理解和掌握...
DirectX是一种由微软开发的API(应用程序接口),主要用于游戏开发、多媒体编程以及图形渲染等领域。在3D图形编程中,模型的移动是至关重要的部分,它涉及到物体在虚拟空间中的定位和导航。在这个主题中,“DirectX...
用友UAP Mobile提供的移动平台集成了移动应用开发、中间件、企业应用商店和管理工具,以解决企业在移动信息化过程中面临的各种问题。该平台简化了移动应用的开发过程,支持多系统的集成,提供全面的安全机制,帮助...
5. **互动性**:在3D模型中,用户可以进行旋转、缩放、平移等操作,模拟实际产品的视角和互动。这种功能常用于产品展示软件或虚拟现实环境中。 6. **格式兼容**:3D模型的文件格式多种多样,如.max(3ds Max原生...
本话题聚焦于如何在KML文件中实现移动模型和标注的位置,这在地图应用中尤其有用,比如用于动态更新地理位置信息或交互式地图操作。 标题"KML中移动模型位置"意味着我们将讨论如何在KML文件中改变3D模型或地标的...
在移动节点模型中,这个概念被用来模拟移动设备,如无线传感器或者移动电话,在地理区域内的移动行为。模型通常会定义一系列可能的状态,比如“静止”、“慢速移动”和“快速移动”,然后用概率矩阵来表示从一个状态...
总结来说,移动开发涉及多种技术、平台和标准,需要开发者具备跨平台开发能力,理解和掌握如WML这样的无线特定语言,以确保应用能在不同类型的移动设备上良好运行。随着移动技术的不断发展,学习和理解这些基础知识...
五、相机控制:在前端3D模型中,用户交互是必不可少的。Three.js提供了第一人称视角的`OrbitControls`,允许用户通过鼠标或触摸设备旋转、平移和缩放视图。`FirstPersonControls`则提供类似游戏的第一人称移动体验。...
在IT行业中,模型资源是一种非常重要的素材,尤其在移动开发领域。"汽车模型.zip"这个压缩包文件,正如其标题所示,很可能包含了多种不同类型的汽车3D模型,这些模型可以用于各种应用程序,如游戏开发、虚拟现实体验...
移动节点模型在无线通信领域是研究移动通信网络性能的关键部分,尤其在VANETs(车辆自组织网络)和Ad Hoc网络中占有重要地位。马尔可夫模型(Markov Model)是一种统计分析方法,常用于模拟系统状态随时间变化的概率...
中国移动IoT物模型标准白皮书是中国移动通信集团公司发布的行业技术文件,旨在解决物联网业务开发过程中的数据异构化、设备异构化、应用异构化等问题,推动物联网业务的高效开发、创新及数据互通。以下是白皮书涵盖...
总的来说,"钉钉移动开发...zip"这个资源可能涵盖了移动开发的基础知识,如iOS和Android平台的开发环境搭建、钉钉SDK的使用,以及高级主题如LSTM模型在移动应用中的应用。对于想要学习或提升钉钉平台移动应用开发...
电子移动门3d模型是计算机图形学领域中的一个重要元素,特别是在建筑设计、室内设计以及游戏开发等行业中广泛应用。这种模型能够为设计师提供一个直观且立体的视角,帮助他们在虚拟环境中预览和修改设计方案,提高...
在移动开发中,HTML5的离线存储(Application Cache)使得应用能够在离线状态下仍然能够运行,提升用户体验。Canvas元素则允许开发者通过JavaScript动态绘制图形,SVG(可缩放矢量图形)提供了另一种创建复杂图形的...
Java ME(Micro Edition)是Java平台的一个重要分支,主要用于移动设备和嵌入式系统的应用程序开发。这个技术允许开发者创建在各种不同类型的手机、智能...对于想要进入移动开发领域的初学者,这是一个很好的学习资源。
jQuery,作为一款广泛使用的JavaScript库,极大地简化了DOM操作、事件处理和动画制作,而在移动Web开发领域,jQuery Mobile则进一步优化了对触摸设备的支持,使得开发者可以轻松创建响应式、跨平台的网页应用。...