Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 什么是分离?_Java_Model View Controller_Stringtemplate - Fatal编程技术网

Java 什么是分离?

Java 什么是分离?,java,model-view-controller,stringtemplate,Java,Model View Controller,Stringtemplate,我在StringTemplate的介绍中注意到以下内容: StringTemplate通过以下方式解释o.p 在对象中查找属性p o。查找规则略有不同 在语言端口之间,但通常 它们遵循旧的JavaBeans命名 惯例。StringTemplate查找 方法首先是getP()、isP()、hasP()。 如果找不到其中一个 方法,它查找一个名为 p 这似乎与本文不符: 通过本质上允许模型通过调用方法来提取数据,这难道不为违反模型/视图分离打开了大门吗?一个糟糕的程序员可能会编写一个导致副作用的方法

我在StringTemplate的介绍中注意到以下内容:

StringTemplate通过以下方式解释o.p 在对象中查找属性p o。查找规则略有不同 在语言端口之间,但通常 它们遵循旧的JavaBeans命名 惯例。StringTemplate查找 方法首先是getP()、isP()、hasP()。 如果找不到其中一个 方法,它查找一个名为 p

这似乎与本文不符:


通过本质上允许模型通过调用方法来提取数据,这难道不为违反模型/视图分离打开了大门吗?一个糟糕的程序员可能会编写一个导致副作用的方法getP()。ST在这里是如何“严格”执行关注点分离的?

每一种模板语言都是这样做的,Velocity、FreeMarker、StringTemplate和JSP/JSF表达式语言

关注点的分离是程序员应该关心的,而不是视图。人们希望编写无副作用的get/is/has方法,这样任何人都可以调用它们,而不必关心这个问题。这就是为什么这些方法应该是访问器,而有些方法通常使用setSomething调用,它们应该是变异器


如果有人编写了自己的类,并决定定义一个有副作用的getSomething方法,那么他们就违背了一般的信念,而且工具在处理对象时不应该采取每一个假设,他们只是希望人们变得聪明,尊重常识,像其他人一样编写代码。

没错。没有真实的事实来支持这一点,但我想确定一种方法是否有副作用等同于停止问题。足够好了。但糟糕的是,ST不得不在严格执行它无法执行的事情上撒谎。与ST在当前版本中所做的工作相比,这篇论文可爱的学术理念已经过时了。实际上,即使您严格限制它仅限于输出字段,它最终也会变成
XType.toString()
,一个错误的程序员可以在
XType.toString()
中编写任何逻辑,甚至
System.exit(1)
。我根本不喜欢所谓的“严格的MVC”。这是一个学术性的东西,把它付诸实践没有任何意义