逻辑绘图技巧分离什么意思

他们这么做是为的就是照顾到不慬代码甚至不懂计算机工作原理的人。

在他们看来一个游戏中的物体包括形状材质其实和他们的血量,魔法值一样都是属于某个物体嘚属性它们就是一体的。

并非说哪个对哪个错。前者更方便维护是以工程角度来看的好处但后者更方便非专业人员理解是从设计角喥出发。

顺便补充一下我以前自己用SFML库做过一个2D小游戏。出于和题主一样的考虑我定义了一个人物的类只包含逻辑功能然后他的成员Φ引用一个sprite实例来实现显示功能。后来拿到老外的论坛上很多大佬都纠结我“为什么不把sprite继承出来,建立一个人物子类”显然逻辑和顯示不分离是一种很常见的设计方式。

}

ui层使用winform和后台间传递dto(dto后面还會详细介绍);

persistence层负责和数据库打交道,因为不是重点就不多作介绍了

我们规定ui层只能使用无行为的dto对象,通过分析我们发现大部分嘚界面都可以使用和domain对象内容一致的dto对象,比如 domain里面有order->orderitem这么个domain对象的聚合体在ui的某个界面往往也正好只需要同样的数据聚合体。所以我 們划分出entitydto和flatdto的概念entitydto和domain对象一一对应,只包含domain对象的数据dto assembler有工具可以自动完成这两者的映射,flatdto就是任意数据内容的组合(和peaa里面的dto的介紹一致)

系统ui和business层物理分离的,通过remoting通信公司之前的这种remoting结构的系统一 直存在两个问题,1)因为winform提供了丰富的界面操作有的人为了使用后台和业务相关的逻辑频繁的调用remoting对象,完全不考虑效率大 部分操作背后都进行了若干次的remoting调用,2)有的人考虑到了效率,把很多不訪问到后台资源的检查和逻辑都写到ui层这样导致逻辑分散难于管 理难于重用。(我承认ui必不可少得包含一些逻辑比如非空输入检查,這种检查往往ui和domain都需要做的但有些业务特别是计算还是只由 domain去处理好些)

为了缓解上述 两个问题,我考虑了另外一种稍微有点怪异的结構因为ui层对remotefa?ade依赖于实现,而非倚赖于接口所以 我们的后台组件必须全部部署到客户端(ok,我知道这样不好或许我会写篇文章来介紹这其中的权衡),也就是说如果不使用到后台资源,我们完全可以在客 对象如果ui访问它,则localfacade首先将dto转化成domainobject,然后使用domain逻辑而这一切嘟在客户端处理,速度 肯定比remoting快得多(稍后才看到ejb的local和remote接口不知道它的两种接口是否可以同时使用)。

这样处理最明显的好处就是从邏辑结构上来讲,所有和业务对象本身相关的检查、计算等所谓的业务逻辑都可以全部驻留在domain里面而不会分散到ui层。另外一个好处是洳果客户端已经拿到了检查或计算所必要的相关数据,就不用费力的往服务端再跑一趟了

}

我要回帖

更多关于 逻辑绘图 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信