js能替代领域对象吗?

07-11-12 fico07
         

js能替代领域对象吗?比如说电子商务网的领域模型有一个ShoppingCart对象,它的职责有一部分就是计算商品总价,但是有人就用js写了一个ShoppingCart,可以替代它,而且性能要好,至少计算总价不需要通过服务器.这让我很疑惑,这样做确实减少了与服务器的交互,性能要好.如果从DDD来看,这就破坏了领域模型的完整性.这个问题各位怎么看?

         

banq
2007-11-16 21:31

js属于架构,而领域建模属于分析,这是两个方面,架构是实现模型的计算机环境,至于具体用什么架构技术实现模型,这是一个不断讨论尝试的话题,没有戒律的。

fety07
2007-11-19 11:13

通俗一点就是这个意思:模型是我们转化为软件(实现)的抽象,即为解决领域问题的解法,解的过程(即用什么技术)是属于架构的.模型不会因为用同的技术而改变.具体到模型中的一个对象如何实现,是用js或者其它都没问题.

wlmouse
2007-11-20 11:52

js是说的JavaScript吗?JavaScript是一种脚本语言。只要是支持对象的语言,就可以建立领域对象啦。领域对象不是Java的专有名词。

JavaScript用来做领域对象也没什么不可以,不过你举的这个例子很不合适。重要业务逻辑用JavaScript是很危险的。这样一来客户端可以很容易的制造虚假信息。这个购物车到时候给你发个无数商品却只有0元的大单会怎么样呢?

如果为了安全,你服务器端要在提交时进行再次核算,那么js写的购物车就没用了(服务器负担没有减少)。不核算,因为客户端的不安全性,很可能造成重大损失。

这种购物车的计算最多是给用户在提交前看一下价格,没有别的任何作用。不如用AJAX向服务器发送一个计算的异步请求来得好。