我的架构看起来像这样: (客户端:android,服务器:web服务axis2)
Presentation layer (Android activities and controllers):
LoginActivity.java
WebServices Layer:
Services.java
Domain Layer:
userManagement:
UserManager.java
entities (POJOS):
User.java
Persistence:
IDaoUser.java
DaoUserImpl.java
确定。我这样做是为了执行登录:
LoginActivity.java:
call the web service (using AsyncTask)
Services.java
...
public User login(String username, String passwd) {
return userManager.login(username, passwd);
}
UserManager.java:
...
public UserManager() {
IDaoUser dao = new DaoUserImpl();
}
public User login(String username, String passwd) {
return dao.login(username, passwd);
}
...
DaoUser.java
...
public User login(String username, String passwd);
DaoUserImpl.java:
...
public User login(String username, String passwd) {
/* JDBC stuff */
}
...
这种做法是否正确? (或者至少,它有意义吗?)。 在DaoUserImpl.java中,我只是检查是否存在具有用户名的用户,并且passwd等于参数(同样,我不知道这种方法是否正确)。 感谢。
答案 0 :(得分:1)
一般情况下,你看起来像是在赛道上。两个渐进的改进建议:
尝试查看您是否可以在服务器端使用更少的层 - 也许您可以直接从服务转到DAO,而无需单独的Manager对象。除非您计划进行多次实施,否则您可能也不需要单独的DAO接口/实现。
考虑使用REST服务而不是SOAP和JAX-RS而不是Axis。 REST具有较少的传输/信封开销,因此在移动应用程序中它可能更适合您。