小编Ste*_*der的帖子

取决于抽象是否有任何明显的缺点?

在使用稳定抽象原理(SAP)阅读维基之后,我想知道是否有人知道取决于抽象而不是混凝土的任何缺点(我认为,这超过了优势).

SAP声明包越稳定,它应该越抽象.这意味着如果包装不太稳定(更有可能改变),那么它应该更具体.我真的不明白为什么会出现这种情况.当然,在所有情况下,无论稳定性如何,我们都应该依赖于抽象并隐藏具体实现?

architecture oop design-patterns package-design

8
推荐指数
1
解决办法
156
查看次数

在GWT中自动登录的会话和Cookie

我知道已经有很多问题,但我似乎还没有找到明确的答案.我要做的是让用户在登录2周后或者直到他们退出时才会被记住.以下是我认为应该发生的事情,我想知道是否有更多经验的人可以告诉我,我是对还是错.

用户首次登录.对服务器的RPC调用返回一个"UserInfo"对象,其中包含一个新的sessionID.服务器上的Aka会发生并user返回:

user.setSessionId(getThreadLocalRequest().getSession().getId());

现在user返回后,我们必须创建Cookie来存储客户端数据.我正确地说我们需要一个Cookie来识别当前用户而另一个用于sessionID:

final long DURATION = 1000 * 60 * 60 * 24 * 14; //duration remembering login - 2 weeks
Date expires = new Date(System.currentTimeMillis() + DURATION);

String sessionID = user.getSessionId();
String username = user.getUsername();
Cookies.setCookie("sessionID", sessionID, expires, null, "/", false);
Cookies.setCookie("username", username, expires, null, "/", false);
Run Code Online (Sandbox Code Playgroud)

现在,当用户稍后返回应用程序时,我们检查cookie并且(如果它们存在且由于某些原因(例如显式从用户注销)未被删除)使用它们的值来通过RPC检查会话有效性服务器:

String sessionID = Cookies.getCookie("sessionID");
String username = Cookies.getCookie("username");

    if ( sessionID != null && username != null){
        AsyncCallback<UserInfo> callBack = new AsyncCallback<UserInfo>(){

            @Override
            public void …
Run Code Online (Sandbox Code Playgroud)

cookies session gwt login session-cookies

5
推荐指数
1
解决办法
1万
查看次数

在XQuery中导入和声明模块名称空间之间的区别?

以下内容有什么区别:

import module namespace fs = "http://expath.org/ns/file";
declare namespace an = "http://zorba.io/annotations";
Run Code Online (Sandbox Code Playgroud)

“导入模块名称空间”与“声明名称空间”相比如何?

而且,使用命名空间声明之间的区别是

declare namespace an =  "http://zorba.io/annotations";
Run Code Online (Sandbox Code Playgroud)

module namespace an =  "http://zorba.io/annotations";
Run Code Online (Sandbox Code Playgroud)

xquery

2
推荐指数
1
解决办法
448
查看次数