我相信面向对象,但还没有达到为了“符合面向对象”而使用不适当的设计/实现的程度。
那么,如何处理Serlvet/EJB/DataContainer分层架构:
这种方法很有吸引力;DataContainer 的作用很明确,并且很容易知道数据来自哪里。
除了不是面向对象之外,这还会导致业务层类不明确,难以命名和组织。
即使我们试图变得更加“面向对象”(例如,将其中一些方法放入 DataConatiners 中),其中一些操作也会对多个数据集进行操作。
如何防止业务层变得令人困惑的程序,但又不会用业务逻辑污染您的数据容器?
class UserServlet {
handleRequest() {
String id = request.get("id");
String name = request.get("name");
if (UserBizLayer.updateUserName(id,name))
response.setStatus(OK);
else
response.setStatus(BAD_REQUEST);
}
}
class UseBizLayer {
updateUserName(String id, String name) {
long key = toLong(id);
user = userDAO.find(key);
if user == null
return false;
if (!validateUserName(name))
return false;
user.setName(name);
userDAO.update(user);
return true;
}
validateUserName(String name) {
// do some validations and return
}
}
class …Run Code Online (Sandbox Code Playgroud) 在foo/bar/my_package/package.scala:
package foo.bar
package object my_package {
type SomeType = java.lang.String
}
Run Code Online (Sandbox Code Playgroud)
然后,在 foo/bar/my_package/my_sub/MyClass.scala
package foo.bar.my_package.my_sub
class MyClass {
var x: SomeType = _
}
Run Code Online (Sandbox Code Playgroud)
这无法编译; SomeType找不到.如果我换MyClass.scala到
package foo.bar.my_package
package my_sub
class MyClass {
var x: SomeType = _
}
Run Code Online (Sandbox Code Playgroud)
一切正常.有什么不同!?!??!
(这是Scala 2.8.1)
Struts 1.3 应用。主网站不是由 struts/Java 提供的。我需要将 struts 操作的结果转发到网站中的页面,即在 struts 上下文之外。目前,我转发到上下文中的 JSP 并使用元刷新转发到真实位置。这似乎有点糟糕。有没有更好的办法?
所以我正在开发一个Rails应用程序 - 主要提供API,我想锁定behjind一个很好的授权系统.我创建了Rails应用程序来呈现HTML,为此我使用了Devise和CanCan.这次我想为我的客户提供JSON服务.我基本上有以下要求:
现在这是我的第一个应用程序,我写的提供API所以我开始研究,到目前为止我发现了人们使用的以下解决方案:
所以基本上我的一天研究基本上只是让我更加困惑.当我使用这些和我的要求时,我会使用这些!我正在努力理解字母汤,有人可以帮助我理解这一点